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

FreeBSD Manual Pages

  
 
  

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

NAME
       connect - initiate a connection on a socket

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

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

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

RETURN VALUE
       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.

ERRORS
       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-
			   chine.

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

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

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

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

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

4.2 Berkeley Distribution	 May 22, 1986			    CONNECT(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=connect&sektion=2&manpath=2.10+BSD>

home | help