2009-08-15 23 views
13

我需要我的應用程序來ping我稍後指定的地址,只需將平均Ping時間複製到標籤的.Text。在我的C#應用​​程序內製作「ping」

任何幫助?

編輯:

我發現如果有人有興趣的解決方案:

Ping pingClass = new Ping();   
PingReply pingReply = pingClass.Send("logon.chronic-domination.com"); 
label4.Text = (pingReply.RoundtripTime.ToString() + "ms"); 
+3

添加您的答案和正確的答案,而不是更新的問題向有關MSDN文檔的鏈接。您以這種方式獲得聲譽,並保持質量保證的格式一致。相關的MSDN鏈接:http://msdn.microsoft.com/en-us/library/system.net.networkinformation.pingreply.aspx – 2009-08-15 05:33:45

回答

32

給看看的NetworkInformation.Ping類。

一個例子:

用法:

PingTimeAverage("stackoverflow.com", 4); 

實現:

public static double PingTimeAverage(string host, int echoNum) 
{ 
    long totalTime = 0; 
    int timeout = 120; 
    Ping pingSender = new Ping(); 

    for (int i = 0; i < echoNum; i++) 
    { 
     PingReply reply = pingSender.Send (host, timeout); 
     if (reply.Status == IPStatus.Success) 
     { 
      totalTime += reply.RoundtripTime; 
     } 
    } 
    return totalTime/echoNum; 
} 
+0

謝謝你的回答。精彩地工作。 :D – 2009-08-15 04:58:41

+0

不客氣! – CMS 2009-08-15 05:37:57

+0

PingTimeAverage(「i.dont.exist.com」,1000)== 0 – 2009-08-15 05:56:56

0

正如阿里納斯這一點。 Sourceforge已經有一個項目正在做你想做的事情。這也包括ICMP的實現(RFC 792)

Sourceforge Project

相關問題