¿Cuál es la forma más fácil de verificar si un socket está cerrado en el lado remoto de la conexión? socket::is_open()
devuelve verdadero incluso si está cerrado en el lado remoto (estoy usando boost::asio::ip::tcp::socket
).¿Cómo comprobar si el socket está cerrado en Boost.Asio?
Podría intentar leer de la transmisión y ver si tiene éxito, pero tendría que cambiar la lógica de mi programa para que funcione de esta manera (no quiero que se extraigan datos de la transmisión en el punto del cheque).
¿Por qué necesita saber si la conexión remota se ha cerrado? – outis
Además, ¿está utilizando un protocolo de aplicación de su propio diseño o un protocolo estándar? – outis
Estoy escribiendo un programa de chat básico, y debo notificar al usuario que la otra persona cerró la aplicación. Tengo mi propio protocolo y ya he agregado un mensaje de "Salir". El único inconveniente es que no se envía si la aplicación se mata/se bloquea/etc. – Hali