0

我需要确定是否发生超时并将条目保存到列表数组中。

这就是我 ping 并将往返值添加到一个列表数组的方式:

static void Ping()
{
    Console.Write(Environment.NewLine + "Start the test? (y/n): ");

    if (Console.ReadLine().ToLower() == "y")
    {
        List<int> lag = new List<int>();

        Console.WriteLine();

        for (int server = 1; server <= 139; server++)
        {
            string url = "world" + server.ToString() + ".runescape.com";

            Console.WriteLine("Checking world " + server + "...");

            Ping ping = new Ping();
            PingReply reply = ping.Send(url);

            lag.Add(int.Parse(reply.RoundtripTime.ToString()));
        }

    // ... More Code Here ...

    }
}

这该怎么做?

4

2 回答 2

2

查看状态属性

reply.Status

它返回一个应该具有相应状态的 IPStatus。

于 2012-05-09T19:10:05.413 回答
0

看来您需要使用 PingReply.Status 中的值来确定是否发生超时。MSDN 文档指出:

如果 Status 的值不是 Success,则不应使用 RoundtripTime、Options 或 Buffer 属性返回的值。RoundtripTime 和 Buffer 属性将返回零,而 Options 属性将返回 null。

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.pingreply.status.aspx

于 2012-05-09T19:10:15.153 回答