[0m


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



[1mNAME
     [0maccept - accept a connection on a socket

[1mSYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>

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

DESCRIPTION
     [0mThe argument _s is a socket that has been created with
     _s_o_c_k_e_t(2), bound to an address with _b_i_n_d(2), and is listen-
     ing for connections after a _l_i_s_t_e_n(2).  _A_c_c_e_p_t 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, _n_s, for the socket.  If no
     pending connections are present on the queue, and the socket
     is not marked as non-blocking, _a_c_c_e_p_t blocks the caller
     until a connection is present.  If the socket is marked
     non-blocking and no pending connections are present on the
     queue, _a_c_c_e_p_t returns an error as described below.  The
     accepted socket, _n_s, may not be used to accept more connec-
     tions.  The original socket _s remains open.

     The argument _a_d_d_r 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 _a_d_d_r parame-
     ter is determined by the domain in which the communication
     is occurring.  The _a_d_d_r_l_e_n is a value-result parameter; it
     should initially contain the amount of space pointed to by
     _a_d_d_r; 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 _s_e_l_e_c_t(2) a socket for the purposes of
     doing an _a_c_c_e_p_t by selecting it for read.

[1mRETURN VALUE
     [0mThe call returns -1 on error.  If it succeeds, it returns a
     non-negative integer that is a descriptor for the accepted
     socket.

[1mERRORS
     [0mThe _a_c_c_e_p_t will fail if:

     [EBADF]		 The descriptor is invalid.

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



Printed 12/11/92    Revision 1.2 of 19/10/88			1






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



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

     [EFAULT]		 The _a_d_d_r 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.

[1mSEE ALSO
     [0mbind(2), connect(2), listen(2), select(2), socket(2)












































Printed 12/11/92    Revision 1.2 of 19/10/88			2



[0m