|
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
|