Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试TCP服务器 我有一个C++应用程序,它接受来自客户端应用程序的TCP连接。_C++_Sockets_Tcp - Fatal编程技术网

调试TCP服务器 我有一个C++应用程序,它接受来自客户端应用程序的TCP连接。

调试TCP服务器 我有一个C++应用程序,它接受来自客户端应用程序的TCP连接。,c++,sockets,tcp,C++,Sockets,Tcp,在看似随机的正常运行时间(天)之后,它停止接收来自客户端的后续消息,并且只在每个TCP连接上看到第一条消息。重新启动后,一切又恢复正常 问题是,这只发生在生产服务器上,我必须在它卡住后立即重新启动,我已经能够在实验室机器上复制这一点。所有套接字操作似乎都没有返回错误,我会在日志文件中看到,而且应用程序非常庞大,所以我不能在这里发布相关部分 第一条消息一直在发送,只有后续消息在一段时间后才被接收。即使我的应用程序停止接收后续消息,我也可以看到它们与Wireshark一起出现 有没有办法让我知道发生

在看似随机的正常运行时间(天)之后,它停止接收来自客户端的后续消息,并且只在每个TCP连接上看到第一条消息。重新启动后,一切又恢复正常

问题是,这只发生在生产服务器上,我必须在它卡住后立即重新启动,我已经能够在实验室机器上复制这一点。所有套接字操作似乎都没有返回错误,我会在日志文件中看到,而且应用程序非常庞大,所以我不能在这里发布相关部分

第一条消息一直在发送,只有后续消息在一段时间后才被接收。即使我的应用程序停止接收后续消息,我也可以看到它们与Wireshark一起出现


有没有办法让我知道发生了什么?我应该查找什么?

此处使用的任何配置设置?在过去,我对服务器accept设置了一个条件,即在处理50000条消息后忽略消息。这是为了防止发展中出现失控的情况。这段代码有一次上线,没有将配置设置更改为“允许无限消息”。结果与您描述的完全一样,2-3天内正常,然后发送的消息正常,但被忽略,没有任何错误


这里的情况可能不是这样,但我提到它是一个例子,说明你可能需要在哪里寻找

更多的日志记录,更多的日志记录。@Joachim:谢谢,但我已经检查了所有套接字函数的所有返回值。没有什么。应记录的任何不明显信息?所有系统功能的返回值。可能会将跟踪添加到您自己的函数中(即“现在进入函数x”/“现在离开函数x”,可能还会记录参数)。添加更多详细信息,例如您是windows还是linuxdeveloper@luskan:这种情况发生在Linux服务器上。这是一个有趣的想法。不幸的是,我没有人工阻塞。其他安装运行数周或数月而没有问题。