我正在建立一个C#客户端/ Java服务器聊天室,现在一切正常,除了一件事: 经过一段时间(一个小时左右)不使用应用程序(或使用它,我不知道)它在socket.EndReceive()函数的C#客户端给我一个SocketException:
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
在闲置一段时间后,Java或C#套接字连接是否会关闭?或者只是tcp协议? 什么是解决它的最佳方法?
全部谢谢!
BAS
答案 0 :(得分:1)
在闲置一段时间后,Java或C#套接字连接是否会关闭?
没有
然而,防火墙,特别是NAT网关通常都是静默的。
解决问题的最佳方法是什么?
实施心跳过程。即,客户端和/或服务器周期性地发送(例如,每10或30秒左右)一条特殊消息,该消息仅用于保持连接活动并更快地检测失败的对等体。