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 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. namelen indicates
the amount of space pointed to by name, in bytes; the
sa_len member of name is
ignored. 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.
The connect
() function returns the
value 0 if successful; otherwise the value -1 is returned and
the global variable errno is set to indicate the
error.
The connect
() system call fails if:
EBADF
]EINVAL
]ENOTSOCK
]EADDRNOTAVAIL
]EAFNOSUPPORT
]EISCONN
]ETIMEDOUT
]ECONNREFUSED
]ECONNRESET
]ENETUNREACH
]EHOSTUNREACH
]EADDRINUSE
]EFAULT
]EINPROGRESS
]EINTR
]EINPROGRESS
.EALREADY
]EACCES
]INADDR_BROADCAST
constant or the
INADDR_NONE
return value) through a socket that
does not provide broadcast functionality.EAGAIN
]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
]ENOENT
]EACCES
]EACCES
]ELOOP
]EPERM
]accept(2), getpeername(2), getsockname(2), select(2), socket(2), sysctl(3), sysctl(8)
The connect
() system call appeared in
4.2BSD.
August 18, 2016 | Debian |