我在循环用ping测试设备间是否正常连接,头几次正常连接,但是我拔了网线就直接异常PingException
IPAddress ip = IPAddress.Parse(192.168.1.152);
Ping ping = new Ping();
PingReply reply = ping.Send(ip);
return (reply.Status == IPStatus.Success);
```
###问题
这个异常发生原因是啥?怎么处理?或者说怎么避免
我猜这个异常发生的原因是你拔掉了网线。抛出这个异常就说明网不通阿:
bool CanConnect(ipstr)
{
IPAddress ip = IPAddress.Parse(ipstr);
Ping ping = new Ping();
try
{
PingReply reply = ping.Send(ip);
return return (reply.Status == IPStatus.Success);
}
catch(PingException)
{
return false;
}
}
现在我也是这么处理的,应该是这个原因,拔了网线cmd用ping,提示一般故障
如果不想使用捕获异常的方式,可以试试 System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()
,详见 How do I check for a network connection?
你这个是测试本机是否有网络连通,我需要的是 测试两个设备 能不能相互ping通,我还是不能用,感谢