Boost.Asio错误代码"现有连接被远程主机强行关闭"

时间:2016-08-24 12:39:26

标签: c++ boost-asio

在我的测试中,我的客户端在尝试从boost套接字读取时偶尔会出现错误

  

远程主机强行关闭现有连接

我有几个问题:

1)我必须检查哪个Boost错误代码与此消息相关联?

2)Linux系统上的模拟是什么?我可以捕获相同的错误代码吗?

3)在服务器的日志中,我没有看到连接成功。但客户端从其连接尝试成功返回。此外boost::asio::write()成功,但此处服务器也没有收到任何内容。但是当尝试从套接字读取(发送后)时,我得到上面的错误消息。

发生了什么事?

1 个答案:

答案 0 :(得分:2)

回答你的问题:

1)boost错误代码为boost::asio::error::connection_reset;见boost/system/error_code.hpp

2)linux系统上的模拟是ECONNRESET;见errno.h

3)connection_reset是TCP套接字可以断开的多种方式之一,请参阅:How to detect when a boost TCP socket disconnects

要准确确定发生了什么,我同意@user并建议您安装并使用Wireshark来观察客户端和服务器之间的TCP消息。