首页 > 解决方案 > c# - SendPingAsync 一直超时失败

问题描述

这是我的代码;

    private async Task PingAsync(IPAddress target)
    {
        Console.WriteLine($@"pinging {target}..");         

        var tasks = new[] { 0, 1, 2, 3, 4 }.Select(async iteration =>
        {
            try
            {
                using (var ping = new Ping())
                {
                    var reply = await ping.SendPingAsync(IpAddress);
                    Console.WriteLine($@"ping result [{iteration}] from {reply.Address} - [{reply.Status}] - {reply.RoundtripTime}");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        });

        await Task.WhenAll(tasks);
    }

并使用

    public async Task Run()
    {
        var Checks = new List<IPAddress>()
        {
            IPAddress.Parse("8.8.8.8"),
            IPAddress.Parse("8.8.4.4"),
            IPAddress.Parse("8.8.1.1"),
        };

        var tasks = Checks.Select(PingAsync);

        await Task.WhenAll(tasks);
    }

所以基本上在我的一台开发机器上它工作得很好,但在另一台开发机器上,所有检查都因超时而失败。

是的,那台机器可以从命令行 ping 那些 ip。

有任何想法吗?

标签: c#.net

解决方案


关闭它,因为它实际上是由我的路由器引起的。


推荐阅读