ACCEPT(2)	    UNIX Programmer's Manual		ACCEPT(2)


NAME
     accept - accept a connection on a socket

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

     ns = accept(s, addr, addrlen)
     int ns, s;
     struct sockaddr *addr;
     int *addrlen;

DESCRIPTION
     The argument s is a socket that has been created with
     socket(2), bound to an address with bind(2), and is listen-
     ing for connections after a listen(2).  Accept extracts the
     first connection on the queue of pending connections,
     creates a new socket with the same properties of s and allo-
     cates a new file descriptor, ns, for the socket.  If no
     pending connections are present on the queue, and the socket
     is not marked as non-blocking, accept blocks the caller
     until a connection is present.  If the socket is marked
     non-blocking and no pending connections are present on the
     queue, accept returns an error as described below.  The
     accepted socket, ns, may not be used to accept more connec-
     tions.  The original socket s remains open.

     The argument addr is a result parameter that is filled in
     with the address of the connecting entity, as known to the
     communications layer.  The exact format of the addr parame-
     ter is determined by the domain in which the communication
     is occurring.  The addrlen is a value-result parameter; it
     should initially contain the amount of space pointed to by
     addr; on return it will contain the actual length (in bytes)
     of the address returned.  This call is used with
     connection-based socket types, currently with SOCK_STREAM.

     It is possible to select(2) a socket for the purposes of
     doing an accept by selecting it for read.

RETURN VALUE
     The call returns -1 on error.  If it succeeds, it returns a
     non-negative integer that is a descriptor for the accepted
     socket.

ERRORS
     The accept will fail if:

     [EBADF]		 The descriptor is invalid.

     [ENOTSOCK]          The descriptor references a file, not a
			 socket.


Printed 11/26/99	  May 22, 1986				1


ACCEPT(2)	    UNIX Programmer's Manual		ACCEPT(2)


     [EOPNOTSUPP]	 The referenced socket is not of type
			 SOCK_STREAM.

     [EFAULT]		 The addr parameter is not in a writable
			 part of the user address space.

     [EWOULDBLOCK]	 The socket is marked non-blocking and no
			 connections are present to be accepted.

SEE ALSO
     bind(2), connect(2), listen(2), select(2), socket(2)


Printed 11/26/99	  May 22, 1986				2


 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 55
Valid CSS Valid XHTML 1.0 Strict