Index of Section 2 Manual Pages
| Interix / SUA | connect.2 | Interix / SUA |
connect(2) connect(2)
connect()
NAME
connect() - initiate a connection on a socket
SYNOPSIS
#include
#include
int connect (int s, const struct sockaddr *addr, int addrlen)
DESCRIPTION
The parameter s 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 addr, which is an address in the
communications space of the socket. Each communications space interprets
the addr parameter in its own way. Generally, stream sockets may
successfully connect(2) only once; datagram sockets may use connect(2)
multiple times to change their association. Datagram sockets may dissolve
the association by connecting to an invalid address, such as a null
address.
RETURN VALUES
If the connection or binding succeeds, 0 is returned. Otherwise a -1 is
returned, and a more specific error code is stored in errno
ERRORS
The connect(2) call fails if:
[EADDRINUSE]
The address is already in use.
[EADDRNOTAVAIL]
The specified address is not available on this machine.
[EAFNOSUPPORT]
Addresses in the specified address family cannot be used with this
socket.
[EALREADY]
The socket is non-blocking and a previous connection attempt has not
yet been completed.
[EBADF]
S is not a valid descriptor.
[ECONNREFUSED]
The attempt to connect was forcefully rejected.
[EFAULT]
The addr parameter 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(2) for completion by selecting
the socket for writing.
[EISCONN]
The socket is already connected.
[ENETUNREACH]
The network isn't reachable from this host.
[ENOTSOCK]
S is a descriptor for a file, not a socket.
[ETIMEDOUT]
Connection establishment timed out without establishing a connection.
The following errors are specific to sockets using the AF_LOCAL protocol
family (previously known as AF_UNIX).
[EACCES]
Search permission is denied for a component of the path prefix.
[EACCES]
Write access to the named socket is denied.
[EINVAL]
The pathname contains a character with the high-order bit set, or the
call was applied against a device that doesn't support sockets.
[ELOOP]
Too many symbolic links were encountered in translating the pathname.
[ENAMETOOLONG]
A component of a pathname exceeded {NAME_MAX} characters, or an entire
path name exceeded {PATH_MAX} characters.
[ENOENT]
The named socket does not exist.
[ENOTDIR]
A component of the path prefix is not a directory.
SEE ALSO
accept(2)
select(2)
socket(2)
getsockname(2)
USAGE NOTES
The connect function is thread safe.
The connect function is async-signal safe.