Initiate a connection on a socket.
#include <sys/types.h> #include <sys/socket.h> int connect(int s, const struct sockaddr *name, socklen_t namelen);
The s argument 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. Each communications space interprets the name argument 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.
0
(zero)
-1
EBADF |
The s argument is not a valid descriptor. |
ENOTSOCK |
The s argument is a descriptor for a file, not a socket |
EADDRNOTAVAIL |
The specified address is not available on this machine. |
EAFNOSUPPORT |
Addresses in the specified address family cannot be used with this socket. |
EISCONN |
The socket is already connected. |
ETIMEDOUT |
Connection establishment timed out without establishing a connection. |
ECONNREFUSED |
The attempt to connect was forcefully rejected. |
ENETUNREACH |
The network is not reachable from this host. |
EHOSTUNREACH |
The remote host is not reachable from this host. |
EADDRINUSE |
The address is already in use. |
EFAULT |
The name argument specifies an area outside the process address space. |
EINPROGRESS |
The socket is non-blocking and the connection cannot be completed immediately. It is possible to select for completion by selecting the socket for writing. |
EINTR |
The connection attempt was interrupted by the delivery of a signal. The connection will be established in the background, as in the case of EINPROGRESS. |
EALREADY |
A previous connection attempt has not yet been completed. |
EACCES |
An attempt is made to connect to a broadcast address (obtained through the INADDR_BROADCAST constant or the INADDR_NONE return value) through a socket that does not provide broadcast functionality. |
EAGAIN |
An auto-assigned port number was requested but no auto-assigned ports are available. Increasing the port range specified by sysctl MIB variables net.inet.ip.portrange.first and net.inet.ip.portrange.last may alleviate the problem. |
Versions | Link to |
---|---|
INtime 4.0 | netlib.lib |