connect - initiate a connection on a socket
#include <sys/socket.h>
int connect(int sockfd, const struct sockaddr *addr,
socklen_t addrlen);
The connect() system call connects the socket
referred to by the file descriptor sockfd
to the address
specified by addr
. The addrlen
argument specifies the
size of addr
. The format of the address in addr
is
determined by the address space of the socket sockfd
; see
socket(2) for further details.
If the socket sockfd
is of type SOCK_DGRAM,
then addr
is the address to which datagrams are sent by
default, and the only address from which datagrams are received. If the
socket is of type SOCK_STREAM or
SOCK_SEQPACKET, this call attempts to make a connection
to the socket that is bound to the address specified by
addr
.
Some protocol sockets (e.g., UNIX domain stream sockets) may successfully connect() only once.
Some protocol sockets (e.g., datagram sockets in the UNIX and Internet domains) may use connect() multiple times to change their association.
Some protocol sockets (e.g., TCP sockets as well as datagram sockets
in the UNIX and Internet domains) may dissolve the association by
connecting to an address with the sa_family
member of
sockaddr
set to AF_UNSPEC; thereafter, the
socket can be connected to another address. (AF_UNSPEC
is supported since Linux 2.2.)
If the connection or binding succeeds, zero is returned. On error, -1
is returned, and errno
is set to indicate the error.
An example of the use of connect() is shown in getaddrinfo(3).
accept(2), bind(2), getsockname(2), listen(2), socket(2), path_resolution(7), selinux(8)