NAME
     socket_accept() - accept a connection on a socket

SYNOPSIS
     #include 
     #include 

     int socket_accept(int s, string read_callback, string write_callback)

DESCRIPTION
     The argument s is  a  socket  that  has  been  created  with
     socket_create(3),  bound  to an address with socket_bind(3),
     and is listening for connections after  a  socket_listen(3).
     socket_accept()  extracts  the first connection on the queue
     of pending connections, creates a new socket with  the  same
     properties  of s and allocates a new file descriptor for the
     socket. If no pending connections are present on the  queue,
     socket_accept()  returns  an  error  as described below. The
     accepted socket is used to read and write data to  and  from
     the  socket  which  connected to this one; it is not used to
     accept more connections. The original socket s remains  open
     for accepting further connections.

     The argument read_callback is the name of  a  function  for
     the  driver  to call when there is something to read on the 
     socket. The read call-back should follow this format:

     void read_callback(int fd, string message)

     Where fd is the socket which has the message.

     The argument write_callback is the name of  a  function  for
     the  driver  to  call when the new socket (not the accepting
     socket) is ready to be written to. The write callback should
     follow this format:

     void write_callback(int fd)

     Where fd is the socket which is ready to be written to.

RETURN VALUES
     socket_accept() returns a non-negative  descriptor  for  the
     accepted  socket  on success. On failure, it returns a nega-
     tive value. socket_error(3) can be used on the return  value
     to get a text description of the error.

ERRORS
     EEFDRANGE      Descriptor out of range.

     EEBADF         Descriptor is invalid.

     EESECURITY     Security violation attempted.

     EEMODENOTSUPP  Socket mode not supported.

     EENOTLISTN     Socket not listening.

     EEWOULDBLOCK   Operation would block.

     EEINTR         Interrupted system call.

     EEACCEPT       Problem with accept.

     EENOSOCKS      No more available efun sockets.

SEE ALSO
     socket_bind(3),     socket_connect(3),     socket_create(3),
     socket_listen(3)

Help topics available:
socket_accept socket_acquire socket_bind socket_error socket_listen
socket_close socket_release socket_write socket_address socket_connect
socket_create

[START|BACK ]




[ NannyMuds main page | FAQ | Contact us ]

You are guest number 102 since November 2019.
This file was last modified: June 2000.