Tôi đang sử dụng Boost :: asio để triển khai ứng dụng khách/máy chủ. Mã máy khách bên dưới được sử dụng để kết nối với máy chủ từ xa.Làm cách nào để kiểm tra xem kết nối ổ cắm có hoạt động trong Boost :: asio không?
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;
}
Ở phía khách hàng, tôi muốn kiểm tra xem kết nối có đang hoạt động hay không. Chức năng "m_socket.is_open();
" không hoạt động. Khi đóng socket máy chủ, "m_socket.is_open();
" vẫn trả về true ở phía máy khách. Có cách nào để kiểm tra kết nối không?
Tôi có một sự nghi ngờ tương tự ở đây: http://stackoverflow.com/q/1511129/174605 và có câu trả lời hay bằng cách joshperry – coelhudo