gpt4 book ai didi

c# - System.Net.NetworkInformation.Ping 崩溃

转载 作者:太空狗 更新时间:2023-10-30 01:22:37 42 4
gpt4 key购买 nike

所以,我有一个拥有 600 多台设备的网站。我正在尝试使用标准的 .NET ping 类对它们一一进行 ping。出于某种原因,该线程正在崩溃 - 它只是在几天后停止响应。它所做的只是 ping 网络上的设备。我们使用的是 Microsoft Windows Server 2008 R2。 .NET ping 类有什么问题吗?我似乎也遇到了内存泄漏,我猜这是由于 ping 造成的。我应该只写一个 win32 ping dll 来为我完成这项工作,还是我在 .NET 上做错了什么?

private void PingDevice(out bool state, string IP)
{
PingReply pingReply;
System.Net.NetworkInformation.Ping pingSender = null;
state = false;
try
{
pingSender = new System.Net.NetworkInformation.Ping();
pingReply = pingSender.Send(IP, 4000);
state = (pingReply.Status == IPStatus.Success); // comms is on/off
}
catch (Exception ex)
{
PingGlobals.driverThread.LogIt("$E Pinging Devices:" + ex.Message + ", " + IP);
}
finally
{
if (pingSender != null)
{
((IDisposable)pingSender).Dispose();
}
}
}

最佳答案

在使用 Ping 的异步版本时,我发现有时 Ping 永远不会返回。我可以想象,如果这种情况发生在异步上,在同步上,它就会停止。我为 Async 找到的答案是设置超时(比 Ping 超时长),然后在 SendAsync 之前调用 SendAsyncCancel 重试。

关于c# - System.Net.NetworkInformation.Ping 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13173068/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com