c++ - 调试 TCP 服务器

标签 c++ sockets tcp

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

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

问题是,这只发生在生产服务器上,一旦卡住我就必须重新启动,我一直无法在实验室机器上重现它。套接字操作似乎都没有返回错误,我会在我的日志文件中看到这个错误,而且应用程序很大,所以我不能只在此处发布相关部分。

第一条消息一直不断,只有一段时间后没有收到后续消息。即使我的应用程序停止接收后续消息,我也可以看到它们通过 Wireshark 进入。

有什么办法可以让我知道发生了什么吗?我应该寻找什么?

最佳答案

这里使用了任何配置设置吗?过去,我在服务器上设置了一个条件,接受在处理完 50,000 条消息后忽略消息。这是为了防止开发中出现失控情况。这段代码有一次在没有将配置设置更改为“允许无限消息”的情况下上线。结果正是你所描述的,2-3 天没问题,然后消息发送正常,但只是被忽略,任何地方都没有错误。

这里可能不是这种情况,但我将其作为您可能需要查看的位置的示例。

关于c++ - 调试 TCP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12103862/

相关文章:

c# - 将字符串的引用从 C# 传递到 C++ 函数

c - 运行无限套接字打开和关闭时打开的文件太多

c++ - 从子函数c或cpp系列返回主函数

c++ - 首次执行后CPU霍夫曼压缩速度更快?

php - 使用套接字php的UDP端口扫描程序

java - 当 Activity 发生变化时,如何保持与服务器的 TCP 连接?

mysql - Linux中远程mysql的防火墙设置

java - tcp多线程服务器java

C++ 标准 : is there a result object?

c++ - 服务器/客户端 TCP 异步(winsock)//FD_WRITE 问题