c++ - Flash 客户端 C++ 服务器连接被对等方重置

标签 c++ sockets socketserver

我们的应用程序涉及 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/

相关文章:

c++ - LLVM JIT 教程代码因简单的参数化函数而崩溃。为什么?

c++ - 运行 OpenNI 2 类时出错 ( gcc 4.7.2/ubuntu 12.10 )

c++ - pthread_kill() 与 pthread_cancel() 终止因 I/O 而阻塞的线程

python listen 2端口相同的文件

python - 套接字服务器框架,如 Tcl "socket -server"

c# - 如何从 C++ 应用程序使用 .net web 服务?

c++ - 是什么导致了我的错误?我正在尝试创建一个玩家类并将玩家名称存储为变量

c - 与 epoll 一起使用时出现非阻塞套接字接收问题

Java 客户端-服务器应用程序抛出 "java.net.SocketException: Connection reset"异常

python - SocketServer 永不退出