Socket.Poll方法在超时之前返回false的可能原因是什么?

时间:2014-01-25 16:11:04

标签: c# .net sockets polling

在Poll方法的MSDN描述中,使用SelectRead选项,如果任何这些条件成立,返回值为true时会解释:

  
      
  • 已调用Listen方法且连接正在等待。

  •   
  • 可以阅读数据。

  •   
  • 连接已关闭,重置或终止。

  •   

由于Poll是一种阻塞方法,因此该方法将“等待”任何这些条件变为真,并且如果达到超时,则返回false。

但是在我的应用程序中,我在达到超时之前遇到了'false'返回值。

我想知道导致这种情况的原因是什么? 有没有准确的方法知道?

1 个答案:

答案 0 :(得分:-1)

连接系统很难诊断。您可以尝试使用网络嗅探器来检查在那个时间点发生了什么。

您也可以尝试使用此处的方法: https://etwcontroler.codeplex.com/

在客户端和服务器上创建ETW会话,并在发生错误情况时停止录制,以便记录客户端,服务器和网络上发生的情况。