The connect() function shall attempt to make a connection on a socket.
The function takes the following arguments:
Specifies the file descriptor associated with the
Points to a sockaddr structure containing the peer
address. The length and format of the address depend on the address family
of the socket.
Specifies the length of the sockaddr structure
pointed to by the address argument.
If the socket has not already been bound to a local address, connect()
shall bind it to an address which, unless the socket's address family is
AF_UNIX, is an unused local address.
If the initiating socket is not connection-mode, then connect() shall set
the socket's peer address, and no connection is made. For SOCK_DGRAM sockets,
the peer address identifies where all datagrams are sent on subsequent
send() functions, and limits the remote sender for subsequent
recv() functions. If address is a null address for the protocol,
the socket's peer address shall be reset.
If the initiating socket is connection-mode, then connect() shall attempt
to establish a connection to the address specified by the address
argument. If the connection cannot be established immediately and O_NONBLOCK
is not set for the file descriptor for the socket, connect() shall
block for up to an unspecified timeout interval until the connection is
established. If the timeout interval expires before the connection is
established, connect() shall fail and the connection attempt shall be
aborted. If connect() is interrupted by a signal that is caught while
blocked waiting to establish a connection, connect() shall fail and set
errno to [EINTR], but the connection request shall not be aborted, and
the connection shall be established asynchronously.
If the connection cannot be established immediately and O_NONBLOCK is set for
the file descriptor for the socket, connect() shall fail and set
errno to [EINPROGRESS], but the connection request shall not be
aborted, and the connection shall be established asynchronously. Subsequent
calls to connect() for the same socket, before the connection is
established, shall fail and set errno to [EALREADY].
When the connection has been established asynchronously, select() and
poll() shall indicate that the file descriptor for the socket is ready
The socket in use may require the process to have appropriate privileges to use
the connect() function.
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html