【发布时间】:2009-12-09 09:15:15
【问题描述】:
我正在运行一个游戏网站,用户使用 Adobe Flash 客户端连接到在 Fedora Linux 机器上运行的 C 服务器。
用户经常抱怨断开连接。通常它们是“对等方重置连接”-断开连接。
有什么方法可以使连接更稳定,还是完全取决于从用户主机到我的服务器的路由?
我尝试过的一件事是通过每隔一分钟以明文形式发送 PING 来使其更稳定,以避免超时问题。
有人有更多想法吗?
【问题讨论】:
我正在运行一个游戏网站,用户使用 Adobe Flash 客户端连接到在 Fedora Linux 机器上运行的 C 服务器。
用户经常抱怨断开连接。通常它们是“对等方重置连接”-断开连接。
有什么方法可以使连接更稳定,还是完全取决于从用户主机到我的服务器的路由?
我尝试过的一件事是通过每隔一分钟以明文形式发送 PING 来使其更稳定,以避免超时问题。
有人有更多想法吗?
【问题讨论】:
您没有用尽服务器进程在服务器上提供的套接字/内存使用/cpu 的数量,是吗?
请与ulimit 联系。
此外,如果可能,请尝试跟踪源代码中的错误消息(发送 RST 数据包时--),即当 send() 或 accept() 返回错误值时。在这种情况下,将调试消息打印到日志中;如果您真的想调试它,请模拟服务器:
【讨论】:
netstat) 当客户端退出时您正确释放了连接?
你在哪里运行服务器?
在家里?在上班?在托管设施?
这将产生很大的不同。
您能否将您的应用设计为连接到服务器上的两个套接字,然后进行负载平衡或使其成为主动/被动(或主动/主动)?
【讨论】:
您可以使用 SO_KEEPALIVE TCP 套接字选项。
【讨论】: