Yolinux.com

connect manpage

Search topic Section
Get manual page for the search topic
List all commands matching the search topic
List all topics in the manpage index

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,  const	 struct sockaddr *serv_addr, socklen_t
       addrlen);

DESCRIPTION
       The connect() system call connects the socket referred to by  the  file
       descriptor  sockfd  to the address specified by serv_addr.  The addrlen
       argument specifies the size of serv_addr.  The format of the address in
       serv_addr  is determined by the address space of the socket sockfd; see
       socket(2) for further details.

       If the socket sockfd is	of  type  SOCK_DGRAM  then  serv_addr  is  the
       address	to  which  datagrams are sent by default, and the only address
       from  which  datagrams  are  received.	If  the	 socket	 is  of	  type
       SOCK_STREAM  or SOCK_SEQPACKET, this call attempts to make a connection
       to the socket that is bound to the address specified by serv_addr.

       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 to AF_UNSPEC.

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.

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

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

       EADDRINUSE
	      Local address is already in use.

       EAFNOSUPPORT
	      The passed address didn't have the correct address family in its
	      sa_family field.

       EADDRNOTAVAIL
	      Non-existent interface was requested or  the  requested  address
	      was not local.

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

       EBADF  The file descriptor is not a valid index in the  descriptor  ta-
	      ble.

       ECONNREFUSED
	      No one listening on the remote address.

       EFAULT The  socket  structure  address  is  outside  the user's address
	      space.

       EINPROGRESS
	      The socket is non-blocking and the  connection  cannot  be  com-
	      pleted  immediately.  It is possible to select(2) or poll(2) for
	      completion by selecting the socket for writing. After  select(2)
	      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	unsuccessfully
	      (SO_ERROR is one of the usual error codes listed here,  explain-
	      ing the reason for the failure).

       EINTR  The system call was interrupted by a signal that was caught.

       EISCONN
	      The socket is already connected.

       ENETUNREACH
	      Network is unreachable.

       ENOTSOCK
	      The file descriptor is not associated with a socket.

       ETIMEDOUT
	      Timeout  while attempting connection. The server may be too busy
	      to accept new connections. Note that for IP sockets the  timeout
	      may be very long when syncookies are enabled on the server.

CONFORMING TO
       SVr4, 4.4BSD (the connect() function first appeared in 4.2BSD).

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

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

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



Linux 2.6.7			  2004-06-23			    CONNECT(2)
YoLinux.com Home Page
YoLinux Tutorial Index
Privacy Policy | Advertise with us | Feedback Form |
Unauthorized copying or redistribution prohibited.
    Bookmark and Share