¿Cuál es la forma recomendada de cerrar "elegantemente" un socket TCP?Cerrar correctamente un socket TCP
He aprendido que cerrar() antes de leer() todos los datos restantes en mi búfer de host pueden causar problemas para el host remoto (podría perder todos los datos en su búfer de recepción que se ha anotado, pero aún no ha sido leído por su aplicación). ¿Es eso correcto?
¿Cuál sería un buen enfoque para evitar esa situación? ¿Hay alguna forma de decirle a la API que no me importa que se pierdan datos debido a que ignoro los datos almacenados en el búfer restantes y cierro el socket?
¿O tengo que considerar el problema en el nivel de protocolo de aplicación y usar algún tipo de señal de "fin de transmisión" implícita o explícita para que la otra parte sepa que es seguro cerrar un socket para leer?
¿En qué idioma? – Kiril
Enchufes de Berkeley; Estoy usando C, pero estoy interesado en el concepto general. – lxgr