File: *manpages*,  Node: connect,  Up: (dir)



CONNECT(2)          Linux Programmer's Manual          CONNECT(2)

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,
       socklen_t  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 sock
       ets may use connect multiple times to change their associ
       ation.  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.

Linux 0.99.11              23 July 1993                         1

CONNECT(2)          Linux Programmer's Manual          CONNECT(2)

       EADDRINUSE
               Address is already in use.

       EINPROGRESS
               The socket is non-blocking and the connection can
               not  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 com
               pleted successfully (SO_ERROR is zero)  or  unsuc
               cessfully  (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 connec
               tion 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 con
       ditions not described here.

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

Linux 0.99.11              23 July 1993                         2

