我基于Windows操作系统上的IO重叠网络编程范例设计,编程和实现了一个服务器应用程序。它与预期的性能很好地协作,观察到在任意选择的客户机中有时没有任何事情发生,数据传输似乎是冻结的。它甚至不会生成任何TCP/IP错误条件,例如超时或任何错误。在这种情况下,服务器会将该连接保持为活动连接,从而导致不必要的资源预留。这可能是什么原因?作为一个解决方案我如何检测这种连接。我怎么能减少这种情况 谢谢x检测服务器中的空闲连接
0
A
回答
0
这可能是什么原因?
客户端已经停止发送或接收,从您的问题不清楚哪个。
作为解决方案我该如何检测这种连接。我怎样才能减少这种情况?
如果您正在阅读,请使用阅读超时,如果您正在阅读,请使用带有定时select()
的非阻止模式。
+0
大家好,非常感谢大家。对不起,这个问题是内容丰富的。我的意思是客户无限期地等待recv阻止呼叫。我通过设置recv超时解决了这个问题。我仍然感到困惑,为什么在发送几个kbs后连接就冻结了。但服务器报告整个缓冲区已被传输。它与网络的带宽有关吗?我如何测试连接到服务器的稳定性 – Hara
相关问题
- 1. 检测服务空闲
- 2. “PGError:没有连接到服务器的”空闲
- 3. 具有空闲连接功能的Akka Tcp服务器
- 4. 如何捕捉“http:服务器关闭空闲连接”错误
- 5. Java RMI(服务器:TCP连接空闲/客户端:Unmarshalexception(EOFException))
- 6. 检测android空闲
- 7. Tomcat的连接池和空闲连接
- 8. Android服务:当设备空闲X分钟时检测
- 9. 如何检测Thrift中的服务器断开连接?
- 10. Flex:检测用户空闲?
- 11. 系统空闲检测
- 12. 如何检测Javascript空闲?
- 13. 检测Winforms中的空闲用户
- 14. 服务器问题的空气连接
- 15. 在Angular 2中检测服务器连接错误(404状态)
- 16. 检查连接的服务器对象
- 17. 如何检测服务器关闭连接的位置?
- 18. SignalR - 检测服务器端连接的传输方法
- 19. 在Windows上检测服务器端的RPC连接丢失
- 20. C++ - 检测到服务器的多个连接
- 21. 如何检测使用Silverlight 4连接到我的服务器
- 22. 服务器到服务器的连接
- 23. 测试连接到MySQL服务器
- 24. 在连接池关闭之前,sql服务器连接必须闲置多久?
- 25. 如何检查服务器连接
- 26. IE9 - 检查服务器连接状态
- 27. 安卓:检查连接到服务器
- 28. 获取连接池中的空闲连接数
- 29. Rails4:如何获取ActiveRecord连接池中的空闲连接数?
- 30. c#检测客户端从服务器断开连接
默认情况下,TCP在连接上没有超时。要么你需要专门启用它(使用'SO_KEEPALIVE'选项),或者在自己的协议中包含某种“ping”或“keep-alive”消息。 –
非常感谢x。但是这发生在数据传输的中间,客户端似乎卡在传输中而没有从阻塞recv返回。这样的维护会有帮助吗? – Hara
在这种情况下,您可能需要使套接字非阻塞,并使用轮询(例如'select')和超时。如果轮询超时则出现问题,需要处理。 –