ACCEPT(2)                                                            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 listening for  connections  after  a
       listen(2).   Accept extracts the first connection on the queue of pend‐
       ing connections, creates a new socket with the same properties of s and
       allocates  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  connections.   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 parameter 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-nega‐
       tive 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.

       [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 connec‐
                           tions are present to be accepted.

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


4.2 Berkeley Distribution        May 22, 1986                        ACCEPT(2)
 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 901
Valid CSS Valid XHTML 1.0 Strict