SINOPSIS
#include <sys/socket.h>int listen(int s, int backlog);
DESCRIPCIÓN
Para aceptar conexiones, primero se crea un conector con socket(2), luego se especifica con listen el deseo de aceptar conexiones entrantes y un límite de la cola para dichas conexiones, y por último las conexiones son aceptadas mediante accept(2). La llamada listen se aplica solamente a conectores de tipo SOCK_STREAM o SOCK_SEQPACKET.El parámetro backlog define la longitud máxima a la que puede llegar la cola de conexiones pendientes. Si una petición de conexión llega estando la cola llena, el cliente puede recibir un error con una indicación de ECONNREFUSED o, si el protocolo subyacente acepta retransmisiones, la petición puede no ser tenida en cuenta, de forma que un reintento tenga éxito.
OBSERVACIONES
El comportamiento del parámetro backlog sobre conectores TCP ha cambiado con la versión 2.2 de Linux. Ahora indica la longitud de la cola para conectores establecidos completamente que esperan ser aceptados, en lugar del número de peticiones de conexión incompletas. La longitud máxima de la cola para conectores incompletos se puede configurar con la sysctl tcp_max_syn_backlog. Cuando los "syncookies" están activos, no existe una longitud máxima lógica y la configuración de esta sysctl se ignora. Vea tcp(7) para más información.
VALOR DEVUELTO
En caso de éxito, se devuelve cero. En caso de error, se devuelve -1 y se pone en errno un valor apropiado.ERRORES
- EADDRINUSE
- Otro conector ya se encuentra escuchando en el mismo puerto.
- EBADF
- El argumento s no es un descriptor válido.
- ENOTSOCK
- El argumento s no es un conector.
- EOPNOTSUPP
- El conector no es de un tipo que admita la operación listen.