c# - 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。
有任何想法吗?
解决方案
关闭它,因为它实际上是由我的路由器引起的。
推荐阅读
- ios - 循环不使用调度队列、iOS、Swift 完成循环
- linux - 如何运行位于不同目录中的不同可靠可执行文件?
- python - Windows 上的 Gensim:未加载 C 扩展,训练会很慢
- cumulocity - 使用 MQTT 模板更新 c8y_RequiredAvailability
- c++ - MSVS/MSVC 静态模板类方法不警告
- gremlin - Gremlin-Python:属性存在检查
- python - 如果存在相同的键,则将列表转换为递归字典和值列表
- ios - CoreGraphics 会在 Apple 设备上支持 Metal 吗?
- r - 如果大于 R 中的某个长度,如何删除列值中的最后一个字符?
- awk - 仅比较 File1 中的前 4 列(CSV 格式)与 File2 中的前 4 列并打印 File1 i 中的所有列