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
Descripción
La subrutina escuchar realiza las siguientes actividades:
- Identifica el socket que recibe las conexiones.
- Marca el socket como conexiones de aceptación.
- 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)