Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 file	descriptor sockfd must refer to	a socket.  If the socket 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 is of type SOCK_STREAM or SOCK_SEQ-
       PACKET, this call attempts to make a connection to another socket.  The
       other  socket is	specified by serv_addr,	which is an address (of	length
       addrlen)	in the communications space of the  socket.   Each  communica-
       tions space interprets the serv_addr parameter in 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 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.

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

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

       ENOTSOCK
	      The file descriptor is not associated with a socket.

       EISCONN
	      The socket is already connected.

       ECONNREFUSED
	      No one listening on the remote address.

       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.

       ENETUNREACH
	      Network is unreachable.

       EADDRINUSE
	      Local address is already in use.

       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
	      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).

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

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

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

       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.

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

NOTE
       The  third  argument  of	connect	is in reality an int (and this is what
       BSD 4.* and libc4 and libc5 have).  Some	POSIX  confusion  resulted  in
       the  present  socklen_t.	  The draft standard has not been adopted yet,
       but glibc2  already  follows  it	 and  also  has	 socklen_t.  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), listen(2), socket(2), getsockname(2)

Linux 2.2			  1998-10-03			    CONNECT(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | NOTE | BUGS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=connect&sektion=2&manpath=Red+Hat+Linux%2fi386+9>

home | help