在我的测试中,当我的客户尝试从一个boost套接字读取时,我的客户偶尔会遇到错误。
现有连接被远程主机强制关闭。
我有几个问题:
1)我必须检查与此消息相关的Boost错误代码是什么?
2) Linux系统上的模拟是什么?我能捕获相同的错误代码吗?
3)在服务器的日志中,我看不到成功的连接。但客户端从其连接尝试中成功返回。boost::asio::write()也成功了,但是这里的服务器没有接收到任何东西。但是,当尝试从套接字(发送后)读取时,我会得到上面的错误消息。
怎么一回事?
发布于 2016-08-26 08:50:31
在回答你的问题时:
1) boost错误代码是boost::asio::error::connection_reset;参见boost/system/error_code.hpp。
2) linux系统上的类似物是ECONNRESET;参见errno.h。
3) connection_reset是TCP可以断开连接的多种方式之一,参见:如何检测boost TCP套接字何时断开连接。
为了准确地确定发生了什么,我同意@user,并建议您安装并使用Wireshark来观察客户端和服务器之间的TCP消息。
https://stackoverflow.com/questions/39123589
复制相似问题