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

FreeBSD Manual Pages


home | help
connect(3SOCKET)					      connect(3SOCKET)

       connect - initiate a connection on a socket

       cc [ flag ... ] file ...	-lsocket -lnsl [ library ... ]
       #include	<sys/types.h>
       #include	<sys/socket.h>

       int connect(int s, const	struct sockaddr	*name, int namelen);

       The  parameter  s  is  a	socket.	If it is of type SOCK_DGRAM, connect()
       specifies the peer with which the socket	is to be associated. This  ad-
       dress is	the address to which datagrams are to be sent if a receiver is
       not explicitly designated.  This	address	is the only address from which
       datagrams  are to be received.  If the socket s is of type SOCK_STREAM,
       connect() attempts to make a connection to another  socket.  The	 other
       socket  is  specified  by name. name is an address in the communication
       space of	the socket.  Each communication	space interprets the name  pa-
       rameter	in  its	own way. If s is not bound, then s will	be bound to an
       address selected	 by  the  underlying  transport	 provider.  Generally,
       stream  sockets	can successfully connect() only	once. Datagram sockets
       can use connect() multiple times	to change their	association.  Datagram
       sockets can dissolve the	association by connecting to a null address.

       If the connection or binding succeeds, 0	is returned.  Otherwise, -1 is
       returned	and sets errno to indicate the error.

       The call	fails if:

       EACCES		       Search permission is denied for a component  of
			       the path	prefix of the pathname in name.

       EADDRINUSE	       The address is already in use.

       EADDRNOTAVAIL	       The  specified  address is not available	on the
			       remote machine.

       EAFNOSUPPORT	       Addresses in the	specified address family  can-
			       not be used with	this socket.

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

       EBADF		       s is not	a valid	descriptor.

       ECONNREFUSED	       The attempt to connect was forcefully rejected.
			       The  calling program should close(2) the	socket
			       descriptor, and issue  another  socket(3SOCKET)
			       call to obtain a	new descriptor before attempt-
			       ing another connect() call.

       EINPROGRESS	       The socket is non-blocking, and the  connection
			       cannot  be  completed immediately.  You can use
			       select(3C) to complete the  connection  by  se-
			       lecting the socket for writing.

       EINTR		       The  connection	attempt	was interrupted	before
			       any data	arrived	by the delivery	of  a  signal.
			       The  connection,	 however,  will	be established

       EINVAL		       namelen is not the size of a valid address  for
			       the specified address family.

       EIO		       An  I/O	error  occurred	 while reading from or
			       writing to the file system.

       EISCONN		       The socket is already connected.

       ELOOP		       Too many	symbolic  links	 were  encountered  in
			       translating the pathname	in name.

       ENETUNREACH	       The network is not reachable from this host.

       EHOSTUNREACH	       The  remote  host  is  not  reachable from this

       ENOENT		       A component of the path prefix of the  pathname
			       in name does not	exist.

       ENOENT		       The  socket referred to by the pathname in name
			       does not	exist.

       ENOSR		       There  were  insufficient   STREAMS   resources
			       available to complete the operation.

       ENXIO		       The  server  exited  before  the	connection was

       ETIMEDOUT	       Connection establishment	timed out without  es-
			       tablishing a connection.

       EWOULDBLOCK	       The  socket  is marked as non-blocking, and the
			       requested operation would block.

       The following errors are	specific to connecting names in	the  UNIX  do-
       main.  These errors might not apply in future versions of the UNIX  IPC

       ENOTDIR		       A component of the path prefix of the  pathname
			       in name is not a	directory.

       ENOTSOCK		       s is not	a socket.

       ENOTSOCK		       name is not a socket.

       EPROTOTYPE	       The  file  that	is  referred  to  by name is a
			       socket of a type	other than type	s.  For	 exam-
			       ple,  s	is  a  SOCK_DGRAM  socket,  while name
			       refers to a SOCK_STREAM socket.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |MT-Level		     |Safe			   |

       close(2),    accept(3SOCKET),	 getsockname(3SOCKET),	   select(3C),
       socket(3SOCKET),	socket.h(3HEAD), attributes(5)

				  08 Mar 2005		      connect(3SOCKET)


Want to link to this manual page? Use this URL:

home | help