¿Cómo debo determinar qué usar para el parámetro de backlog de un socket que escucha? ¿Es un problema simplemente especificar un número muy grande?socket escucha el parámetro de backlog, cómo determinar este valor?
Respuesta
Desde el docs:
un valor para la acumulación de SOMAXCONN es una constante especial que da instrucciones al proveedor de servicios subyacente responsable de la toma de s para ajustar la longitud de la cola de espera de las conexiones a un valor máximo razonable .
Hay una respuesta muy larga a esto en el Winsock Programmer's FAQ. Detalla la configuración estándar y la función de registro dinámico agregado en una revisión a NT 4.0.
Fantástica respuesta en esa pregunta frecuente; gracias por compartir. Recomendado. –
Eso realmente me ayudó. Gracias. – Nyerguds
Utilizo SOMAXCONN por segunda vez, a menos que tenga un motivo específico para utilizar 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 permite que el cliente continúe intentando conectarse retransmitiendo SYN.
Además, el argumento de retraso puede tener diferentes significados en diferentes implementaciones de socket.
- En la mayoría significa el tamaño de la cola de conexión semiabierta, en algunos significa el tamaño de la cola de conexión completa.
- En muchas implementaciones, el argumento de retraso acumulado 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 a la longitud máxima de cola de todos modos.
Como advertencia para cualquiera que utilice boost asio, el valor de SOMAXCONN se usa como 5 con boost.
¿Podría impulsar consultar el sistema operativo para este valor? Las preguntas frecuentes vinculadas en otra respuesta sugieren que 5 es el máximo real en al menos algunos sistemas operativos. –
@romkyns En al menos algunas versiones de Windows que existían alrededor de 1992. – EJP
- 1. uwsgi: el backlog de escucha del socket del servidor está limitado a 100 conexiones
- 2. cómo funciona la escucha de un socket
- 3. escucha() ignorando el valor de retraso acumulado
- 4. Cerrar un socket TCP de escucha en C
- 5. Escucha de cambio de valor en JTextField
- 6. Scrum backlog excel templates
- 7. "este" en el parámetro de la función
- 8. ¿Cómo detectar la desconexión del cliente en el escucha de socket PHP?
- 9. El socket de escucha UDP deja de escuchar después de cambios en la configuración de red
- 10. ¿Cómo obtener este valor como un CGFloat?
- 11. Escucha DependencyProperty evento modificado y obtener el valor antiguo
- 12. ¿Cómo puedo determinar si se especificó un valor del parámetro Cmdlet de PowerShell?
- 13. Cómo resuelvo este error, "error al intentar deserializar el parámetro"
- 14. ¿Cómo determinar el tipo "real" de un valor de interfaz {}?
- 15. ¿Cómo se escucha en múltiples direcciones IP?
- 16. Function.apply no usa este parámetro de arg
- 17. ¿Cómo puedo determinar el valor máximo de un pid_t?
- 18. Cómo agregar escucha de acción que escucha varios botones
- 19. Valor predeterminado para el parámetro de función?
- 20. ¿Mapa de historia o backlog plano?
- 21. Cómo ALTERAR el parámetro de valor de tabla
- 22. C# escucha UDP Async SocketException
- 23. ¿Cómo se maneja un gran backlog de producto?
- 24. recuperando el valor de TOS en un socket TCP
- 25. ¿Cómo imprimo el valor de este booleano? (Java)
- 26. ¿Cómo obtener el valor de estilo en cascada o determinar si se calculó el valor real?
- 27. (¿Cómo puedo encontrar el tipo de socket del descriptor de socket?
- 28. ¿Cómo se escucha el revelador/encuadernador?
- 29. Cómo determinar si el valor es una fecha en PHP
- 30. este modificador de parámetro en C#?
Terrible answer. ¿Cuáles son esos "valores razonables"? – Nyerguds
Tengo que estar de acuerdo, esto no responde la pregunta en absoluto. – spuriousdata
¿Por qué se aceptó esta seudo respuesta? –