INtime SDK Help
INtime Help

Initiate a connection on a socket.

#include <sys/types.h>
#include <sys/socket.h>
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.

Return Values

0 (zero)
Failure. The global pseudo-variable errno is set to indicate the error:
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
See Also