ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages
|
This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles. For more information about the manual page format, see the manual page for manpages(5). |
CONNECT(2) BSD System Calls Manual CONNECT(2) NAME connect -- initiate a connection on a socket SYNOPSIS #include <sys/types.h> #include <sys/socket.h> int connect(int socket, const struct sockaddr *address, socklen_t address_len); DESCRIPTION The parameter socket 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 address, which is an address in the com-munications communications munications space of the socket. Each communications space interprets the address parameter in its own way. Generally, stream sockets may successfully connect() only once; datagram sockets may use connect() multiple times to change their associ-ation. association. ation. Datagram sockets may dissolve the association by connecting to an invalid address, such as a null address or an address with the address family set to AF_UNSPEC (the error EAFNOSUPPORT will be harmlessly returned). RETURN VALUES Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and the global integer variable errno is set to indi-cate indicate cate the error. ERRORS The connect() system call will fail if: [EACCES] The destination address is a broadcast address and the socket option SO_BROADCAST is not set. [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] socket is not a valid descriptor. [ECONNREFUSED] The attempt to connect was ignored (because the target is not listening for connections) or explicitly rejected. [EFAULT] The address parameter specifies an area outside the process address space. [EHOSTUNREACH] The target host cannot be reached (e.g., down, discon-nected). disconnected). nected). [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. [EINTR] Its execution was interrupted by a signal. [EINVAL] An invalid argument was detected (e.g., address_len is not valid for the address family, the specified address family is invalid). [EISCONN] The socket is already connected. [ENETDOWN] The local network interface is not functioning. [ENETUNREACH] The network isn't reachable from this host. [ENOBUFS] The system call was unable to allocate a needed memory buffer. [ENOTSOCK] socket is not a file descriptor for a socket. [EOPNOTSUPP] Because socket is listening, no connection is allowed. [EPROTOTYPE] address has a different type than the socket that is bound to the specified peer address. [ETIMEDOUT] Connection establishment timed out without establish-ing establishing ing a connection. 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. [EACCES] Search permission is denied for a component of the path prefix. [EACCES] Write access to the named socket is denied. [EIO] An I/O error occurred while reading from or writing to the file system. [ELOOP] Too many symbolic links were encountered in translat-ing translating ing the pathname. This is taken to be indicative of a looping symbolic link. [ENAMETOOLONG] A component of a pathname exceeded {NAME_MAX} charac-ters, characters, ters, or an entire path name exceeded {PATH_MAX} char-acters. characters. acters. [ENOENT] The named socket does not exist. [ENOTDIR] A component of the path prefix is not a directory. LEGACY SYNOPSIS #include <sys/types.h> #include <sys/socket.h> The include file <sys/types.h> is necessary. SEE ALSO accept(2), getsockname(2), select(2), socket(2), compat(5) HISTORY The connect() function call appeared in 4.2BSD. 4.2 Berkeley Distribution June 4, 1993 4.2 Berkeley Distribution |