Subrutina de escucha

Finalidad

Escucha las conexiones de socket y limita el retraso de las conexiones entrantes.

Biblioteca

Biblioteca C estándar (libc.a)

Sintaxis

#include <sys/socket.h>
int listen ( Socket,  Backlog)
int Socket, Backlog;

Descripción

La subrutina escuchar realiza las siguientes actividades:

  1. Identifica el socket que recibe las conexiones.
  2. Marca el socket como conexiones de aceptación.
  3. Limita el número de solicitudes de conexión pendientes en la cola del sistema.

El límite de longitud de cola de solicitud de conexión pendiente se especifica mediante el parámetro Acumulación por llamada de escucha. Un parámetro no - somaxconn -define el límite máximo de longitud de cola permitido en el sistema, por lo que el límite de longitud de cola efectivo será Acumulación o somaxconn, el que sea menor.

Todas las aplicaciones que contienen la subrutina escuchar deben compilarse con la macro _BSD establecida en un valor específico. Los valores aceptables son 43 y 44. Además, todas las aplicaciones de socket deben incluir la biblioteca BSD libbsd.a .

Parámetros

Elemento Descripción
Socket Especifica el nombre exclusivo del socket.
Pila Especifica el número máximo de solicitudes de conexión pendientes.

Valores de retorno

Tras la finalización satisfactoria, la subrutina escuchar devuelve un valor 0.

Si la subrutina escuchar no es satisfactoria, el manejador de subrutinas realiza las siguientes funciones:

  • ' Devuelve un valor de -1 al programa llamante.
  • Mueve un código de error, que indica el error específico, en la variable global errno .

Códigos de error

La subrutina no tiene éxito si se produce alguno de los errores siguientes:

Error Descripción
EBADF El parámetro Zócalo no es válido.
ECONNRECHAZADO El host ha rechazado el servicio, normalmente debido a un proceso de servidor que falta en el nombre solicitado o a la solicitud que excede el importe del retraso.
EINVAL El socket ya está conectado.
ENOTSOCK El parámetro Zócalo hace referencia a un archivo, no a un socket.
EOPNOTSUPP El socket referenciado no es un tipo que soporte la subrutina escuchar .

Ejemplos

El fragmento de programa siguiente ilustra el uso de la subrutina escuchar con 5 como el número máximo de conexiones pendientes que se pueden poner en cola a la espera de la aceptación por parte del proceso de servidor.

listen(s,5)