| CONNECT(2) | System Calls Manual | CONNECT(2) |
connect — initiate
a connection on a socket
Standard C Library (libc, -lc)
#include
<sys/socket.h>
int
connect(int
s, const struct sockaddr
*name, socklen_t
namelen);
The parameter s is a socket. If it is of
type SOCK_DGRAM, this call specifies the peer with
which the socket is to be associated; this address is that to which
datagrams are to be sent, and the only address from which datagrams are to
be received. If the socket is of type SOCK_STREAM,
this call attempts to make a connection to another socket. The other socket
is specified by name, which is an address in the
communications space of the socket. namelen indicates
the amount of space pointed to by name, in bytes. Each
communications space interprets the name parameter in
its own way. Generally, stream sockets may successfully
connect()
only once; datagram sockets may use connect()
multiple times to change their association. Datagram sockets may dissolve
the association by connecting to an invalid address, such as a null
address.
If a
connect()
call is interrupted by a signal, it will return with errno set to
EINTR and the connection attempt will proceed as if
the socket was non-blocking. Subsequent calls to
connect() will set errno to
EALREADY.
If the connection or binding succeeds, 0 is returned. Otherwise a -1 is returned, and a more specific error code is stored in errno.
The connect() call fails if:
EBADF]ENOTSOCK]EINVAL]EADDRNOTAVAIL]EAFNOSUPPORT]EISCONN]ETIMEDOUT]ECONNREFUSED]ENETUNREACH]EADDRINUSE]EFAULT]EINPROGRESS]SO_ERROR option
at the SOL_SOCKET level. The returned socket error
status is zero on success, or one of the error codes listed here on
failure.EALREADY]connect() was interrupted by a signal, and the
connection attempt has not yet been completed.EINTR]The following errors are specific to connecting names in the UNIX domain. These errors may not apply in future versions of the UNIX IPC domain.
ENOTDIR]ENAMETOOLONG]NAME_MAX}
characters, or an entire path name exceeded
{PATH_MAX} characters.ENOENT]EACCES]ELOOP]accept(2), getsockname(2), getsockopt(2), poll(2), select(2), socket(2)
The connect() function call appeared in
4.2BSD.
| March 27, 2021 | NetBSD 11.0 |