【发布时间】:2012-08-24 16:22:08
【问题描述】:
我有一个接受来自客户端应用程序的 TCP 连接的 C++ 应用程序。
经过看似随机的正常运行时间(几天)后,它停止接收来自客户端的后续消息,并且只看到每个 TCP 连接上的第一条消息。重启后一切正常。
问题是,这只发生在我必须重新启动的生产服务器上,一旦它卡住并且我无法在实验室机器上重现它。所有套接字操作似乎都没有返回错误,我会在我的日志文件中看到该错误,并且应用程序很大,所以我不能只在此处发布相关部分。
第一条消息总是不断收到,只有一段时间后才收到后续消息。即使我的应用程序停止接收后续消息,我也可以看到它们通过 Wireshark 进入。
有什么想法可以让我知道发生了什么吗?我应该寻找什么?
【问题讨论】:
-
更多日志记录,更多更多日志记录。
-
@Joachim:谢谢,但我已经在检查所有套接字函数的所有返回值。没有什么。应该记录任何不明显的内容?
-
所有系统函数的返回值。也许将跟踪添加到您自己的函数(即“现在进入函数 x”/“现在离开函数 x”,也可能记录参数)。
-
添加更多细节,比如你是 windows 还是 linux 开发者
-
@luskan:这发生在 Linux 服务器上。