假设我有一个插座如何检测。我需要这个,因为我想让客户端请求其他客户端的列表,这样他们就可以向对方发送消息。当升压TCP套接字断开
clients_.insert(socket); // pseudocode
然后我运行一些异步操作
socket->async_receive(boost::asio::buffer(&(*header), sizeof(Header))
, 0
, std::bind(handleReceiveHeader, this, std::placeholders::_1, std::placeholders::_2, header, socket));
如何检测当连接被关闭,所以我可以从容器中取出我的插座?
clients_.erase(socket); // pseudocode
可以在此处找到错误列表:http:// www.boost.org/doc/libs/1_44_0/doc/html/boost_asio/reference/error__basic_errors.html – aCuria
我发现这确实有效,我得到错误“connection_reset”。但是,在文档中,我注意到另一个错误代码“connection_aborted”。是否有必要处理这个错误代码? – aCuria
这是一个有用的链接@aCuria。错误代码的另一个来源是文件'boost/system/error_code.hpp'。至于“connection_aborted”错误,我没有在我的应用程序中看到它,但测试它也没有什么坏处。 – kenba