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

FreeBSD Manual Pages


home | help
CONNECT(2)		      System Calls Manual		    CONNECT(2)

       connect - initiate a connection on a socket

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

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

       The  parameter  s  is a socket.	If it is of type SOCK_DGRAM, then 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,  then  this	 call attempts to make a connection to another
       socket.	The other socket is specified by name, which is	an address  in
       the  communications space of the	socket.	 Each communications space in-
       terprets	the name parameter in its own way.  Generally, stream  sockets
       may  successfully  connect  only	once; datagram sockets may use connect
       multiple	times to change	their association.  Datagram sockets may  dis-
       solve  the  association	by connecting to an invalid address, such as a
       null address.

       If the connection or binding succeeds, then 0 is	returned.  Otherwise a
       -1 is returned, and a more specific error code is stored	in errno.

       The call	fails if:

       [EBADF]		   S is	not a valid descriptor.

       [ENOTSOCK]	   S is	a descriptor for a file, not a socket.

       [EADDRNOTAVAIL]	   The	specified address is not available on this ma-

       [EAFNOSUPPORT]	   Addresses in	the specified address family cannot be
			   used	with this socket.

       [EISCONN]	   The socket is already connected.

       [ETIMEDOUT]	   Connection  establishment  timed out	without	estab-
			   lishing a connection.

       [ECONNREFUSED]	   The attempt to connect was forcefully rejected.

       [ENETUNREACH]	   The network isn't reachable from this host.

       [EADDRINUSE]	   The address is already in use.

       [EFAULT]		   The name parameter specifies	an  area  outside  the
			   process address space.

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

       [EALREADY]	   The socket is non-blocking and a  previous  connec-
			   tion	attempt	has not	yet been completed.

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

       [ENOTDIR]      A	component of the path prefix is	not a directory.

       [EINVAL]	      The  pathname  contains  a character with	the high-order
		      bit set.

       [ENAMETOOLONG] A	component of a pathname	exceeded 255 characters, or an
		      entire path name exceeded	1023 characters.

       [ENOENT]	      The named	socket does not	exist.

       [EACCES]	      Search  permission is denied for a component of the path

       [EACCES]	      Write access to the named	socket is denied.

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

       accept(2), select(2), socket(2),	getsockname(2)

4.2 Berkeley Distribution	 May 22, 1986			    CONNECT(2)


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

home | help