Manual page for CONNECT(2)
connect - initiate a connection on a socket
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
int connect(s, name, namelen)
int s;
struct sockaddr *name;
int namelen;
DESCRIPTION
The parameter
s
is a socket.
If it is of type
SOCK_DGRAM,
then 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 it is of type
SOCK_STREAM,
then 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
parameter 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
connect()
returns:
- 0
-
on success.
- -1
-
on failure and sets
errno
to indicate the error.
ERRORS
The call fails if:
- EADDRINUSE
-
The address is already in use.
- EADDRNOTAVAIL
-
The specified address is not available on the remote 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.
The calling program should
close.2v
the socket descriptor, and issue another
socket.2
call to obtain a new descriptor before attempting another
connect.2
call.
- EFAULT
-
The
name
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.
- EINTR
-
The connection attempt was interrupted before
any data arrived by the delivery of a signal.
- EINVAL
-
namelen
is not the size of a valid address for the specified address family.
- EISCONN
-
The socket is already connected.
- ENETUNREACH
-
The network is not 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 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 of the
path name in
name.
- ELOOP
-
Too many symbolic links were encountered in translating the path name in
name.
- EIO
-
An I/O error occurred while reading from or writing to the file system.
- ENAMETOOLONG
-
The length of the path argument exceeds
{PATH_MAX}.
A pathname component is longer than
{NAME_MAX}
(see
sysconf.2v
while
{_POSIX_NO_TRUNC}
is in effect
(see
pathconf.2v
- ENOENT
-
A component of the path prefix of the path name in
name
does not exist.
The socket referred to by the path name in
name
does not exist.
- ENOTDIR
-
A component of the path prefix of the path name in
name
is not a directory.
- ENOTSOCK
-
The file referred to by
name
is not a socket.
- EPROTOTYPE
-
The file referred to by
name
is a socket of a type other than the type of
s
(e.g.,
s
is a
SOCK_DGRAM
socket, while
name
refers to a
SOCK_STREAM
socket).
SEE ALSO
accept.2
close.2v
connect.2
getsockname.2
select.2
socket.2
Created by unroff & hp-tools.
© somebody (See intro for details). All Rights Reserved.
Last modified 11/5/97