首页 新闻 搜索 专区 学院

C# 使用ping来判断网络是否连通,但是拔掉网线就PingException

0
[已解决问题] 解决于 2020-09-27 09:26

我在循环用ping测试设备间是否正常连接,头几次正常连接,但是我拔了网线就直接异常PingException

代码

IPAddress ip = IPAddress.Parse(192.168.1.152);
Ping ping = new Ping();
PingReply reply = ping.Send(ip);

return (reply.Status == IPStatus.Success);
```

###问题
这个异常发生原因是啥?怎么处理?或者说怎么避免
小草上飞飞的主页 小草上飞飞 | 菜鸟二级 | 园豆:207
提问于:2020-09-27 09:04
< >
分享
最佳答案
0

我猜这个异常发生的原因是你拔掉了网线。抛出这个异常就说明网不通阿:

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;
 }
}
奖励园豆:5
会长 | 大侠五级 |园豆:9555 | 2020-09-27 09:13

现在我也是这么处理的,应该是这个原因,拔了网线cmd用ping,提示一般故障

小草上飞飞 | 园豆:207 (菜鸟二级) | 2020-09-27 09:20
其他回答(1)
0

如果不想使用捕获异常的方式,可以试试 System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() ,详见 How do I check for a network connection?

dudu | 园豆:38814 (高人七级) | 2020-09-27 09:10

你这个是测试本机是否有网络连通,我需要的是 测试两个设备 能不能相互ping通,我还是不能用,感谢

支持(0) 反对(0) 小草上飞飞 | 园豆:207 (菜鸟二级) | 2020-09-27 09:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册