Winform判断网络是否链接之C#版网络链接,如何用C#判断网络是否连接呢,这个有N多方法,我们下面尽量说的完整一些。
第一种办法,最简单的,但是不准确,呵呵
private void btnIsConnect_Click(object sender, EventArgs e)
{
if (SystemInformation.Network) {
MessageBox.Show("已经联网,但是不确定是互联网还是局域网");
}
}
这个办法在局域网下也是true
第二种办法 Ping 一个地址,我们就采用baidu要是baidu宕机了,哇塞,那就不怨谁了。哈哈
首先引用命名空间
using System.Net.NetworkInformation;
然后我们简单的实现一下,这种实现并不完美,慢慢的我们在完善他,
private void btnPing_Click(object sender, EventArgs e)
{
Ping ping = new Ping();
PingReply pr = ping.Send("baidu.com");
if (pr.Status == IPStatus.Success)
MessageBox.Show("联网状态");
else
MessageBox.Show("你网线掉了啦");
}
ping.Send("baidu.com");
记住Send有8个重载方法,你可以自己去调整。我们先得到,一个谷歌的IP做准备
然后开始吧这里我们主要是根据Send的参数来准备我们的数据,也有人把这个称作 发心跳包 说白了就是不断的发送请求,判断是否联网。
Ping ping = new Ping();
PingOptions poptions = new PingOptions();
poptions.DontFragment = true;
string data = string.Empty;
byte[] buffer = Encoding.ASCII.GetBytes(data);
准备数据到位,开始Send