CONNECT(2)                       System Calls                       CONNECT(2)




NAME

       connect - initiate a connection on a socket


SYNOPSIS

       #include <sys/types.h>
       #include <sys/socket.h>

       int connect (int s, struct sockaddr *name, int namelen);


DESCRIPTION

       The  parameter  s  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  com-
       munications  space of the socket.  Each communications space interprets
       the name parameter in its own way.  Generally, stream sockets may  suc-
       cessfully  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

       If the connection or binding succeeds, 0 is returned.  Otherwise  a  -1
       is returned, and a more specific error code is stored in errno.


ERRORS

       The connect call fails if:

              EBADF  S is not a valid descriptor.

              ENOTSOCK
                     S 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 isn't reachable from this host.

              EADDRINUSE
                     The address is already in use.

              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.

              EALREADY
                     The socket is  non-blocking  and  a  previous  connection
                     attempt has not yet been completed.

       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.

              ENOTDIR
                     A component of the path prefix is not a directory.

              EINVAL The pathname contains a character with the high-order bit
                     set.

              ENAMETOOLONG
                     A component of a pathname exceeded 255 characters, or  an
                     entire path name exceeded 1023 characters.

              ENOENT The named socket does not exist.

              EACCES Search  permission  is denied for a component of the path
                     prefix.

              EACCES Write access to the named socket is denied.

              ELOOP  Too many symbolic links were encountered  in  translating
                     the pathname.


SEE ALSO

       accept(2), select(2), socket(2), getsockname(2)


HISTORY

       The connect function call appeared in 4.2BSD.



GNO                             16 January 1997                     CONNECT(2)

Man(1) output converted with man2html