Soy nuevo en la programación del zócalo (como ya entendiste por mi pregunta tonta), pero manteniendo mi vergüenza a un lado, estoy escribiendo un programa usando TCP posix. Mi restricción es la siguiente: el mensaje que se enviará del cliente al servidor se debe leer como transmisión de bytes y, aunque mi aplicación no es de alto rendimiento, el mensaje se debe entregar lo antes posible. Escribí una clase de cliente TCP con la intención de hacer lo siguiente: 1 conectar - muchos enviar - y 1 cerrar al final de la transmisión. El problema es que los mensajes no se entregan casi en tiempo real (supongo que espera tener un paquete más grande para un mejor rendimiento de ) Después de investigar un poco en línea, descubrí que si bien se puede desactivar el algoritmo Nagle (NA), es una muy mala idea hacerlo. Como soy nuevo en la programación de socket, no quiero desactivar funciones que no entiendo completamente. Así que me quedo con dos malas (?) Opciones:N * (conectar + enviar + cerrar) vs (Nagle desactivar + conectar + N * enviar + cerrar), N> 1
- Connect - Enviar- cerca por mensaje
- 1 Connect - enviar varias veces y hacer 1 cerrar al final con la AN discapacitados. Mientras leo las consecuencias de deshabilitar el NA, me parece que abrir y cerrar un socket cada vez solo para enviar un mensaje es un precio caro para pagar también.
¿Hay otras soluciones sin dejar zócalos?
Gracias.
+1 por hacer una buena investigación antes de preguntar. – Nemo