在已连接的客户端上处理套接字例外10060

时间:2013-11-19 21:51:40

标签: c# .net sockets

套接字异常10060:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应

我读过的关于Socket Exception 10060的绝大多数问题都是在连接的上下文中。我的服务器遇到此异常的第二部分“已建立的连接失败,因为已连接的主机无法响应”

我有大约150个持久客户端套接字连接。我的服务器经常在其中一些连接上接收Socket Exception 10060。我会说每5分钟大约1-3个。目前,当我在套接字上获得此异常时,我断开了该套接字。我注意到在5秒到3分钟内,客户端将重新连接。

说客户端实际上是否存在连接问题并且没有响应是否公平?

当我收到Socket Exception 10060时,是否应该断开客户端套接字?或者我应该监视特定客户端/套接字接收Socket Exception 10060的次数并在x次出现后断开它们?

1 个答案:

答案 0 :(得分:1)

如果它只是某些客户端而且只有部分时间,那么它似乎确实是那些客户端存在导致问题的连接问题。

如果是这种情况并且客户端应对这种情况并成功重新连接,那么通过断开连接处理异常是正确的方法。

仅在一定数量的连续异常之后断开连接是明智的,因为奇怪的异常可能只是一个短暂的问题。此外,如果关闭和重新连接的成本(就所需的时间而言)相对较高,那么继续这样做可能会很昂贵。