为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

紫衣仙女 2018-12-07 13:36:52

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

 

具体情况如下:

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

 

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

谢谢。

 

 

查看完整描述

1 回答

?
qq_花开花谢_0

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

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

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

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

查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 331 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信