accept

ACCEPT(2)                    Manual del Programador                    ACCEPT(2)



NOMBRE
       accept - acepta una conexión en un zócalo (socket)

SINOPSIS
       #include <sys/types.h>
       #include <sys/socket.h>
       int accept(int s, struct sockaddr *addr, int *addrlen);

DESCRIPCION
       El argumento s es un  zócalo creado mediante el comando socket(2),
       enlazado a una dirección gracias a bind(2), y está escuchando por
       conexiones después de un listen(2).  La llamada accept extrae la primera
       conexión pedida en la cola de conexiones pendientes, crea un nuevo
       zócalo con las mismas propiedades de s y asigna un nuevo fichero
       descriptor para el  zócalo. Si no quedan conexiones en la cola, y el
       zócalo no está marcado como no-bloqueador, accept bloquea la petición
       hasta que haya un  zócalo disponible.  Si el  zócalo está marcado no-
       bloqueador y no hay conexiones pendientes en la cola en ese instante,
       accept regresa un error según se describe más adelante.  El  zócalo
       aceptado no puede usarse para aceptar conexiones adicionales.  El  zócalo
       original s permanece abierto.

       El argumento addr en la salida contiene la dirección de la entidad
       conectante, según el nivel de comunicaciones. El formato exacto del
       parámetro addr está determinado por el dominio en el que la comunicación
       se efectua.  addrlen es un parámetro tanto para input como output;
       inicialmente contiene la cantidad de espacio indicado por addr; cuando
       regresa contiene la longitud real (en bytes) de la dirección regresada.
       Esta llamada se usa con  zócalos basados en conexiones, por el momento
       via SOCK_STREAM.

       Es posible elegir mediante select(2) un  zócalo para realizar un accept
       simplemente elijiendolo para lectura.

       Para ciertos protocolos que requieren una confirmación explícita, tal
       como ISO o DATAKIT, accept puede interpretarse como una función para
       eliminar de la cola la próxima conexión solicitada sin implicar una
       confirmación.  Se puede eludir a la confirmación a través de una lectura
       o escritura normal en el nuevo fichero descriptor, y un rechazo puede
       indicarse implícitamente cerrando el nuevo  zócalo.

       Uno puede obtener datos concernientes  a la conexión pedida sin confirmar
       la conexión simplemente llamando recvmsg(2) con un valor msg_iovlen de 0
       y un valor no-nulo en msg_controllen, o también ejecutando una petición
       de getsockopt(2) Similarmente, es posible proveer información sobre el
       rechazo de la conexión ejecutando sendmsg(2) suministrando la información
       de control, o llamando setsockopt(2).

VALORES REGRESADOS
       La llamada regresa -1 en caso de error. Si tiene éxito, regresa un entero
       no-negativo que es un descriptor para el  zócalo aceptado.

ERRORES
       EBADF   El descriptor no es válido.

       ENOTSOCK
               El descriptor se refiere a un fichero, no a un  zócalo.

       EOPNOTSUPP
               El  zócalo referido no es del tipo SOCK_STREAM.

       EFAULT  El parámetro addr no se encuentra en una zona escribible del
               espacio de direcciones del usuario.

       EWOULDBLOCK
               El  zócalo está marcado como no-bloqueador y no hay  conexiones
               presentes que puedan ser aceptadas.

HISTORIA
       La función accept apareció en BSD 4.2.

VEASE
       bind(2), connect(2), listen(2), select(2), socket(2)



Manual BSD                         25 Jun 1996                         ACCEPT(2)