NAME

     connect - initiate a connection on a socket


SYNOPSIS

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

     int connect(int sockfd, struct  sockaddr  *serv_addr,  int
     addrlen );


DESCRIPTION

     The parameter  sockfd  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 serv_addr,
     which  is  an  address  in  the  communications space of the
     socket.  Each communications space interprets the serv_addr,
     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 VALUE

     If the connection or binding succeeds, zero is returned.  On
     error, -1 is returned, and errno is set appropriately.


ERRORS

     The following are general socket errors only.  There may  be
     other domain-specific error codes.

     EBADF   Bad descriptor.

     EFAULT  The socket structure address is outside your address
             space.

     ENOTSOCK
             The descriptor is not associated with a socket.

     EISCONN The socket is already connected.

     ECONNREFUSED
             Connection refused at server.

     ETIMEDOUT
             Timeout while attempting connection.

     ENETUNREACH
             Network is unreachable.

     EADDRINUSE
             Address is already in use.

     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.  After  select  indicates  writability, use
             getsockopt(2) to read the SO_ERROR option  at  level
             SOL_SOCKET  to  determine  whether connect completed
             successfully (SO_ERROR is  zero)  or  unsuccessfully
             (SO_ERROR  is  one  of  the usual error codes listed
             above, explaining the reason for the failure).

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


CONFORMING TO

     SVr4, 4.4BSD (the connect function  first  appeared  in  BSD
     4.2).   SVr4  documents  additional general error codes EAD-
     DRNOTAVAIL, EINVAL, EAFNOSUPPORT, EALREADY,  EINTR,  EPROTO-
     TYPE, ENOSR.  It also documents many additional error condi-
     tions not described here.


SEE ALSO

     accept(2), bind(2), listen(2), socket(2), getsockname(2)