Seth Woolley's Man Viewer

connect(2) - connect, connect - initiate a connection on a socket - man 2 connect

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

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



NAME
       connect - initiate a connection on a socket(2,7,n)

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

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

DESCRIPTION
       The file(1,n) descriptor sockfd must refer to a socket.  If the socket(2,7,n) is of
       type  SOCK_DGRAM  then  the  serv_addr  address is the address to which
       datagrams are sent by default, and the only address  from  which  data-
       grams  are received.  If the socket(2,7,n) is of type SOCK_STREAM or SOCK_SEQ-
       PACKET, this call attempts to make a connection to another socket.  The
       other  socket(2,7,n) is specified by serv_addr, which is an address (of length
       addrlen) in(1,8) the communications space of the  socket.   Each  communica-
       tions space interprets the serv_addr parameter in(1,8) its own way.

       Generally,  connection-based  protocol sockets may successfully connect
       only once; connectionless protocol sockets  may  use  connect  multiple
       times to change their association.  Connectionless sockets may dissolve
       the association by connecting to an address with the  sa_family  member
       of sockaddr set(7,n,1 builtins) to AF_UNSPEC.

RETURN VALUE
       If  the connection or binding succeeds, zero is returned.  On error(8,n), -1
       is returned, and errno is set(7,n,1 builtins) appropriately.

ERRORS
       The following are general socket(2,7,n)  errors  only.   There  may  be  other
       domain-specific error(8,n) codes.

       EACCES For Unix domain sockets, which are identified by pathname: Write
              permission is denied on the socket(2,7,n) file(1,n), or search permission is
              denied for one of the directories in(1,8) the path prefix.  (See also
              path_resolution(2).)

       EACCES, EPERM
              The user tried to connect to a broadcast address without  having
              the  socket(2,7,n)  broadcast  flag  enabled  or the connection request
              failed because of a local firewall rule.

       EADDRINUSE
              Local address is already in(1,8) use.

       EAFNOSUPPORT
              The passed address didn't have the correct address family in(1,8) its
              sa_family field.

       EAGAIN No  more free local ports or insufficient entries in(1,8) the routing
              cache. For PF_INET see the  net.ipv4.ip_local_port_range  sysctl(2,5,8)
              in(1,8) ip(7,8)(7) on how to increase the number of local ports.

       EALREADY
              The socket(2,7,n) is non-blocking and a previous connection attempt has
              not yet been completed.

       EBADF  The file(1,n) descriptor is not a valid index in(1,8) the  descriptor  ta-
              ble.

       ECONNREFUSED
              No one listening on the remote address.

       EFAULT The  socket(2,7,n)  structure  address  is  outside  the user's address
              space.

       EINPROGRESS
              The socket(2,7,n) is non-blocking and the  connection  cannot  be  com-
              pleted  immediately.  It is possible to select(2,7,2 select_tut)(2) or poll(2) for
              completion by selecting the socket(2,7,n)  for  writing.  After  select(2,7,2 select_tut)
              indicates  writability,  use  getsockopt(2) to read(2,n,1 builtins) the SO_ERROR
              option at level SOL_SOCKET to  determine  whether  connect  com-
              pleted   successfully   (SO_ERROR  is  zero)  or  unsuccessfully
              (SO_ERROR is one of the usual error(8,n) codes listed here,  explain-
              ing the reason for the failure).

       EISCONN
              The socket(2,7,n) is already connected.

       ENETUNREACH
              Network is unreachable.

       ENOTSOCK
              The file(1,n) descriptor is not associated with a socket.

       ETIMEDOUT
              Timeout  while attempting connection. The server may be too busy
              to accept(2,8) new connections. Note that for IP sockets the  timeout(1,3x,3x cbreak)
              may be very long when syncookies are enabled on the server.

CONFORMING TO
       SVr4,  4.4BSD  (the  connect function first appeared in(1,8) BSD 4.2).  SVr4
       documents the additional general  error(8,n)  codes  EADDRNOTAVAIL,  EINVAL,
       EAFNOSUPPORT,  EALREADY,  EINTR,  EPROTOTYPE, and ENOSR.  It also docu-
       ments many additional error(8,n) conditions not described here.

NOTE
       The third argument of connect is in(1,8) reality an int (and  this  is  what
       BSD  4.*  and  libc4 and libc5 have).  Some POSIX confusion resulted in(1,8)
       the present socklen_t, also used by glibc.  See also accept(2,8)(2).

BUGS
       Unconnecting a socket(2,7,n) by calling connect with a  AF_UNSPEC  address  is
       not yet implemented.

SEE ALSO
       accept(2,8)(2),   bind(2,n,1 builtins)(2),  getsockname(2),  listen(1,2,7)(2),  path_resolution(2),
       socket(2,7,n)(2)



Linux 2.6.7                       2004-06-23                        CONNECT(2)

References for this manual (incoming links)