Connects two sockets.
Standard C Library (libc.a
int connect ( Socket, Name, NameLength)
const struct sockaddr *Name;
The connect subroutine requests a connection between two sockets. The kernel sets up the communication link between the sockets; both sockets must use the same address format and protocol.
If a connect subroutine is issued on an unbound socket, the system automatically binds the socket.
The connect subroutine performs a different action for each of the following two types of initiating sockets:
|Socket||Specifies the unique name of the socket.|
|Name||Specifies the address of target socket that will form the other end of the communication line|
|NameLength||Specifies the length of the address structure.|
Upon successful completion, the connect subroutine returns a value of 0.
If the connect subroutine is unsuccessful, the system handler performs the following functions:
The connect subroutine
is unsuccessful if any of the following errors occurs:
|EBADF||The Socket parameter is not valid.|
|ENOTSOCK||The Socket parameter refers to a file, not a socket.|
|EADDRNOTAVAIL||The specified address is not available from the local machine.|
|EAFNOSUPPORT||The addresses in the specified address family cannot be used with this socket.|
|EISCONN||The socket is already connected.|
|ETIMEDOUT||The establishment of a connection timed out before a connection was made.|
|ECONNREFUSED||The attempt to connect was rejected.|
|ENETUNREACH||No route to the network or host is present.|
|EADDRINUSE||The specified address is already in use.|
|EFAULT||The Address parameter is not in a writable part of the user address space.|
|EINPROGRESS||The socket is marked as nonblocking. The connection cannot be immediately completed. The application program can select the socket for writing during the connection process.|
|EINVAL||The specified path name contains a character with the high-order bit set.|
|ENETDOWN||The specified physical network is down.|
|ENOSPC||There is no space left on a device or system table.|
|ENOTCONN||The socket could not be connected.|
The following program fragment illustrates the use of the connect subroutine by a client to initiate a connection to a server's socket.
struct sockaddr_un server; . . . connect(s,(struct sockaddr*)&server, sun_len(&server));
The connect subroutine is part of Base Operating System (BOS) Runtime.
The socket applications can be compiled with COMPAT_43 defined. This will make the sockaddr structure BSD 4.3 compatible. For more details refer to socket.h.
If the environment variable SOCKS5C_CONFIG is set, the connect subroutine may attempt to make the requested connection through a SOCKS server.
The accept subroutine, bind subroutine, getsockname subroutine, send subroutine, socket, subroutine, socks5tcp_connect subroutine.
Initiating UNIX Stream Connections Example Program, Sockets Overview, and Understanding Socket Connections in AIX 5L Version 5.1 Communications Programming Concepts.