在我的测试中,我的客户端在尝试从boost套接字读取时偶尔会出现错误
远程主机强行关闭现有连接
我有几个问题:
1)我必须检查哪个Boost错误代码与此消息相关联?
2)Linux系统上的模拟是什么?我可以捕获相同的错误代码吗?
3)在服务器的日志中,我没有看到连接成功。但客户端从其连接尝试成功返回。此外boost::asio::write()
成功,但此处服务器也没有收到任何内容。但是当尝试从套接字读取(发送后)时,我得到上面的错误消息。
发生了什么事?
答案 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消息。