首页 新闻 会员 周边

遭遇“An existing connection was forcibly closed by the remote host”异常

0
[已解决问题] 解决于 2011-06-30 13:09

项目中服务端采用Socket接收连接进来的客户端的信息。在调用socket.Receive()方法时,有时会抛出上述异常。

 

具体情况如下:

服务程序平时运行正常,连续运行几天后,突然出现这个异常,之后,所有连接进来的客户端都会在Receive()时抛出异常。服务器不能再接收任何客户端发来的信息。但是服务端仍然能正常接收客户端的连接请求,即能accept()。当重启程序后,一切又恢复正常。

 

请朋友们帮我分析一下问题的原因及讨论一下解决方法。

谢谢。

 

 

Lucker的主页 Lucker | 初学一级 | 园豆:53
提问于:2010-08-26 17:45
< >
分享
最佳答案
0

服务端不能 Receive, 是因为连接已经超时,或因为意外情况连接断开,总之就是连接不再可用了.

TCP有个连接空闲超时,这是一个问题;

也可能客户端连接被防火墙之类的关闭了.

总之,这是正常现象,你的应用必须要处理这种问题,而且这只能从你的应用中去解决. 也就是说,客户端不会总是在断开连接之前先通知你,因为你必须应对这些情况.

Launcher | 高人七级 |园豆:45045 | 2010-08-27 09:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册