boost asio執行中報錯

MagicProgram發表於2012-07-24
使用Boost.asio進行socket程式設計,實際執行過程中,會出現如下錯誤,導致程式異常退出:

remote_endpoint: Transport endpoint is not connected
Disconnected from

其中第二行debug資訊是我在程式中新增的,當需要關閉連線時列印,但沒有像預期的那樣出現遠端IP地址,這說明是在執行該程式碼時出現異常,程式碼如下:

std::cout << "Disconnected from ";
std::cout << m_socket.remote_endpoint().address();
std::cout << std::endl;
m_socket.close();

出現異常應該是遠端剛連線上立刻斷開,導致無法獲取到remote_endpoint。

加入異常處理:

try {
std::cout << "Disconnected from ";
std::cout << m_socket.remote_endpoint().address();
std::cout << std::endl;
} catch(boost::system::system_error &ec) {
std::cerr << "Disconnected " << ec.what() << std::endl;
}
m_socket.close();

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25432352/viewspace-736500/,如需轉載,請註明出處,否則將追究法律責任。

相關文章