调试TCP服务器 我有一个C++应用程序,它接受来自客户端应用程序的TCP连接。
在看似随机的正常运行时间(天)之后,它停止接收来自客户端的后续消息,并且只在每个TCP连接上看到第一条消息。重新启动后,一切又恢复正常 问题是,这只发生在生产服务器上,我必须在它卡住后立即重新启动,我已经能够在实验室机器上复制这一点。所有套接字操作似乎都没有返回错误,我会在日志文件中看到,而且应用程序非常庞大,所以我不能在这里发布相关部分 第一条消息一直在发送,只有后续消息在一段时间后才被接收。即使我的应用程序停止接收后续消息,我也可以看到它们与Wireshark一起出现调试TCP服务器 我有一个C++应用程序,它接受来自客户端应用程序的TCP连接。,c++,sockets,tcp,C++,Sockets,Tcp,在看似随机的正常运行时间(天)之后,它停止接收来自客户端的后续消息,并且只在每个TCP连接上看到第一条消息。重新启动后,一切又恢复正常 问题是,这只发生在生产服务器上,我必须在它卡住后立即重新启动,我已经能够在实验室机器上复制这一点。所有套接字操作似乎都没有返回错误,我会在日志文件中看到,而且应用程序非常庞大,所以我不能在这里发布相关部分 第一条消息一直在发送,只有后续消息在一段时间后才被接收。即使我的应用程序停止接收后续消息,我也可以看到它们与Wireshark一起出现 有没有办法让我知道发生
有没有办法让我知道发生了什么?我应该查找什么?此处使用的任何配置设置?在过去,我对服务器accept设置了一个条件,即在处理50000条消息后忽略消息。这是为了防止发展中出现失控的情况。这段代码有一次上线,没有将配置设置更改为“允许无限消息”。结果与您描述的完全一样,2-3天内正常,然后发送的消息正常,但被忽略,没有任何错误
这里的情况可能不是这样,但我提到它是一个例子,说明你可能需要在哪里寻找 更多的日志记录,更多的日志记录。@Joachim:谢谢,但我已经检查了所有套接字函数的所有返回值。没有什么。应记录的任何不明显信息?所有系统功能的返回值。可能会将跟踪添加到您自己的函数中(即“现在进入函数x”/“现在离开函数x”,可能还会记录参数)。添加更多详细信息,例如您是windows还是linuxdeveloper@luskan:这种情况发生在Linux服务器上。这是一个有趣的想法。不幸的是,我没有人工阻塞。其他安装运行数周或数月而没有问题。