【问题标题】:Both server and socket reporting ECONNRESET. Whats going on? [closed]服务器和套接字都报告 ECONNRESET。这是怎么回事? [关闭]
【发布时间】:2017-06-12 18:52:23
【问题描述】:

我有一个 C++ 服务器和客户端。

我正在使用 poll() 系统调用来监视服务器上的套接字是否准备好读取、准备好写入和错误。

对于某些连接,我看到 poll() 在发送一堆数据后检测到 ECONNRESET 并在中途失败。在客户端,我也看到报告了 ECONNRESET。

所以基本上双方都在报告远程端关闭了连接。

怎么会这样? 我该如何调试?我可以启用任何 tcp 层日志记录吗?

【问题讨论】:

  • 您是否可以访问 Wireshark 以记录数据包跟踪并查看网络上发生了什么?
  • 发生这种情况的原因有很多,我建议使用上面评论中提到的wireshark。
  • 我已投票删除此内容,因为它没有任何价值,如果没有更多信息,它也不是答案。

标签: c++ sockets network-programming poll-syscall


【解决方案1】:

我可以启用任何 tcp 层日志记录吗?

最常用的工具是Wireshark

您可以使用该工具详细检查通过您的 NIC 发送和接收的任何数据包。

另一个是tcpdump 用于 linux 系统。

【讨论】:

  • 不幸的是,这是在一个有很多服务器的测试环境中。我无法控制机器。即使我做了如何在发生此问题时准确捕获数据包。
  • @siri 您只需要控制您的客户端计算机即可查看流量。
  • 那台机器上有很多流量。这个问题只是偶尔发生。即使在完全传输成功的情况下,许多连接和所有连接都检测到套接字错误 104。只有在某些情况下,我才看到在传输过程中双方的连接都被重置了。如何使用 tcpdump 捕捉这种场景?
  • @siri 使用过滤器、grep 工具等等...抱歉,我无法提供更好的建议,捕捉此类场景并非易事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-28
  • 1970-01-01
相关资源
最近更新 更多