14

我需要我的应用程序对稍后指定的地址进行 ping,只需将平均 ping 时间复制到标签的 .Text 即可。

有什么帮助吗?

编辑:

如果有人感兴趣,我找到了解决方案:

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

2 回答 2

34

看一下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;
}
于 2009-08-15T04:51:06.943 回答
0

就像对此的旁注一样。sourceforge 上已经有一个项目在做你想要的。这还包括 ICMP (RFC 792) 的实现

Sourceforge 项目

于 2010-01-26T16:32:37.477 回答