Parámetro de trabajo pendiente de escucha de socket, ¿cómo determinar este valor?

StackOverflow https://stackoverflow.com/questions/114874

  •  02-07-2019
  •  | 
  •  

Pregunta

¿Cómo debo determinar qué usar para el parámetro de acumulación de un socket de escucha?¿Es un problema simplemente especificar un número muy grande?

¿Fue útil?

Solución

Desde el documentos:

Un valor para el trabajo pendiente de SOMAXCONN es una constante especial que indica al proveedor de servicios subyacente responsable de los sockets que establezca la longitud de la cola de conexiones pendientes en un valor máximo razonable.

Otros consejos

Hay una respuesta muy larga a esto en el Preguntas frecuentes del programador de Winsock.Detalla la configuración estándar y la función de trabajo pendiente dinámico agregada en una revisión de NT 4.0.

Segundo, uso SOMAXCONN, a menos que tenga una razón específica para usar una cola corta.

Tenga en cuenta que si no hay espacio en la cola para una nueva conexión, no se enviará ningún RST, lo que permitirá que el cliente continúe intentando conectarse automáticamente retransmitiendo SYN.

Además, el argumento backlog puede tener diferentes significados en diferentes implementaciones de socket.

  • En la mayoría significa el tamaño de la cola de conexión medio abierta, en algunos significa el tamaño de la cola de conexión completa.
  • En muchas implementaciones, el argumento de la acumulación se multiplicará para producir una longitud de cola diferente.
  • Si se especifica un valor que es demasiado grande, todas las implementaciones truncarán silenciosamente el valor hasta la longitud máxima de la cola de todos modos.

Como advertencia para cualquiera que use boost asio, el valor de SOMAXCONN se usa como 5 con boost.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top