我们的应用程序涉及 C++ 套接字服务器、与 C++ 服务器通信的 Flash 客户端以及将 crossdomain.xml 提供给 Flash 客户端的 Python 套接字服务器。 C++ 服务器调用 REST 操作并将结果返回 Flash 客户端。所有这些都托管在 Linux 64 位服务器 - Debian 上。
对于我们的一些用户,当游戏服务器尝试从套接字读取(在 recv() 上)时,我们会遇到很多“连接被对等重置”的情况。 Flash 策略服务器也具有来自“对等方重置连接”的类似数量。
我正在寻找想法、资源,这个问题的原因是什么。当然,这不是由于服务器过载 - 用户的情况 - 有时是 3 个用户,有时是 300 个用户。
我们在自己的私服上进行了测试,情况是一样的。
我们怀疑可以解决该问题的方法:
- Flash 客户端在与 C++ 服务器以及套接字进行通信时出现问题。
- 网络问题
- 一些组合 TCP 选项
我们做了什么:
- 捕获客户端的安全和 IO 错误。在那里我们只需记录它们:(
我们想做什么:
- 将 C++ 服务器的优先级更改为 -5 或 -10 - 我希望这可以提高 IO 操作。
我知道“Connection Reset by pear”的原因 - 我在 stackOverFlow 和 google 中检查了很多相关内容 - 但我找不到解决此问题的方法。
最佳答案
“Connection Reset by Peer”与服务器过载无关,它是一条消息,告诉您远程客户端(或您与客户端之间的某些网络设备)主动关闭了网络连接。
这可能是网络故障的迹象(家庭网关认为连接超时,或者您自己的防火墙认为连接空闲并超时),或者更有可能的是,客户端崩溃或用户刚刚离开页面,因此Flash 客户端关闭。
我认为,如果没有实际遇到问题的人的意见,您将无法轻松诊断问题。
关于c++ - Flash 客户端 C++ 服务器连接被对等方重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297063/