2012-02-15 142 views
1

我们有涉及C++套接字服务器,与C++服务器通信的Flash客户端以及将crossdomain.xml提供给Flash客户端的Python套接字服务器的应用程序。 C++服务器调用REST操作并将结果返回给Flash客户端。所有这些托管在Linux 64位服务器上 - Debian。Flash客户端C++服务器连接由对端重置

对于我们的一些用户,当游戏服务器试图从套接字读取(在​​recv()上)时,我们有很多“通过对等方重置连接”。 Flash策略服务器也具有与“通过对等方重置连接”类似的金额。

我正在寻找想法,资源什么是这个问题的原因。当然,这不是来自服务器过载 - 用户有多少 - 有时是3个用户,有时候是300个用户。

我们在我们的私人服务器上测试过,情况是一样的。

什么我们怀疑来解决这个问题:

  • Flash客户端的问题与C++服务器和通信在所有插座。
  • 网络问题
  • 一些组合TCP选项

我们所做的:从客户端

  • 抓安全和IO错误回报。在那里,我们只要登录他们:(

我们一直认为做:

  • 的C++服务器的更改优先级,以10-5 -10 - 我希望这可以提高IO操作

我知道“连接被重置梨”的原因 - 我查很多,其中在计算器和谷歌为 - 但我不能找到办法来解决这个问题

+1

这是否在连接的生命早期发生? (你永远不会收到来自连接的任何数据)或者这发生在一直工作正常的连接? (你已经收到了一些正确的数据。)这是否发生在连发中?还是他们随机分配? – 2012-02-15 16:22:25

+0

我为一个游戏网站做了类似的事情,但是使用普通的简单XML实现了闪存/服务器通信。我无法帮助你解决问题,只是想知道为什么你没有尝试更简单的解决方案。 – vulkanino 2012-02-15 16:22:39

+0

'只有在苹果设备上才会发生由梨复位的连接 – 2012-02-15 16:27:44

回答

1

“连接被对方​​复位”。与此无关服务器过载,这是一条消息,告诉您远程客户端(或您和客户端之间的某些网络设备)主动关闭了网络连接。

这可能是网络故障的表现(家庭网关认为连接超时或您自己的防火墙决定连接处于空闲状态并超时),或者更可能是客户端崩溃或用户刚刚离开页面所以Flash客户端关闭。

我不认为如果没有来自实际遇到问题的人的意见,您将很容易诊断问题。

+0

嘿,我们正在从Flash客户端获取调试日志 - 那里有安全异常和一些IO错误异常,但对于解决问题并没有什么用处。我会检查“闪存强制关闭插槽的原因”等原因。 – glg 2012-02-15 21:11:22

+0

@glg那么日志显示没有客户端崩溃或导航远离页面呢? – 2012-02-15 21:16:05

+0

没有客户端崩溃,但我们没有记录“从客户端导航”。但是,当我们重复几次 - 我的Flash客户端已经关注并且我通过C++套接字服务器的同位连接重置了连接,但是如果远离客户端导航 - 套接字将被关闭? – glg 2012-02-16 08:04:32