2013-06-18 139 views
8

ping的默認時間是多少?我使用下面的代碼將ping發送到tcp設備。 IPStatus何時會超時?默認ping超時

private static void ApplyPing(Topology.Runtime rt) 
{ 
    try 
    { 
     if (rt.TcpClient != null) 
     { 
      string ip = rt.Ip; 
      if (new Ping().Send(ip).Status != IPStatus.Success) 
      { 
       Service.WriteEventLog(string.Format("{0} ping error.", ip), EventLogEntryType.Warning); 
       rt.Disconnect(); 
      } 
     } 
    } 
    catch (ArgumentNullException ex) 
    { 

    } 
    catch (Exception ex) 
    { 
     Service.WriteEventLog(ex, EventLogEntryType.Error); 
    } 
} 

謝謝。

+0

你是怎麼衡量? – GolezTrol

回答

16

從MSDN herehere

該方法等待五秒鐘的ICMP迴應應答消息。如果它在那段時間沒有收到回覆,則該方法返回並且Status屬性設置爲TimedOut。

如果我們在反射檢查,確實我們看到:

public PingReply Send(string hostNameOrAddress) 
{ 
    return this.Send(hostNameOrAddress, 5000, this.DefaultSendBuffer, null); 
} 
+0

有沒有可能的方法來覆蓋5秒的值? –

+0

@Harold_Finch不是AFAIK –

+0

「AFAIK」是什麼意思? –