CONNECT(2) | System Calls Manual | CONNECT(2) |
connect
—
#include <sys/socket.h>
int
connect
(int
s, const struct sockaddr
*name, socklen_t
namelen);
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
.
connect
() call fails if:
EBADF
]ENOTSOCK
]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
]connect
() function call appeared in
4.2BSD.
May 18, 2004 | NetBSD 9.0 |