Estoy usando Boost :: asio para implementar una aplicación cliente/servidor. El código de cliente a continuación se usa para conectarse al servidor remoto.Cómo verificar si una conexión de socket está activa en Boost :: asio?
try
{
boost::asio::io_service m_io_service;
boost::asio::ip::tcp::socket m_socket(m_io_service);
boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string("127.0.0.1"), 17);
m_socket.connect(endpoint);
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
En el lado del cliente, quiero comprobar si la conexión es en vivo. La función "m_socket.is_open();
" no funciona. Cuando el socket del servidor está cerrado, el "m_socket.is_open();
" sigue siendo verdadero en el lado del cliente. ¿Hay alguna forma de verificar la conexión?
Tuve una duda similar aquí: http://stackoverflow.com/q/1511129/174605 y hay una buena respuesta por joshperry – coelhudo