判断网络是否链接
来源:互联网 发布:中华石杉 大数据 编辑:程序博客网 时间:2024/06/04 18:49
如何用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
int timeout = 1200; PingReply reply = ping.Send(IPAddress.Parse("74.125.71.104"),timeout,buffer,poptions);if (reply.Status == IPStatus.Success) MessageBox.Show("联网状态");else MessageBox.Show("你网线掉了啦");haha,好了,测试一下吧。
嘿嘿,这个就稳定多了。
当然还有一种办法就是 调用系统的 API了,
[DllImport("wininet")]private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue);
给出上面函数的用法地址
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384702%28v=vs.85%29.aspx
int i = 0;if (InternetGetConnectedState(out i, 0)) MessageBox.Show("联网状态");else MessageBox.Show("你网线掉了啦");
0 0
- 判断网络是否链接
- 判断网络是否链接
- 判断网络是否链接
- 判断是否有网络链接
- android 判断wifi网络是否链接
- android 判断3G网络是否链接
- Android 判断手机网络是否链接
- Android 判断是否有网络正在链接中
- android中判断是否有网络链接和判断是否是WIFI
- 判断网络链接
- android 判断网络链接
- Android 网络链接判断
- 手机网络链接判断
- Winform判断网络是否边接之C#版网络链接
- 判断网络是否正常
- 判断是否连接网络
- 判断网络是否可用
- 判断网络是否可用
- C++编程思想杂记(②4章 输入输出流)
- BestCoder Round #32.Negative and Positive (NP)——哈希
- Ubuntu 12.04 下安装qt4
- POJ2586 Y2K Accounting Bug(贪心)
- **定义属性的语法结构**
- 判断网络是否链接
- nyoj.73 比大小【大数问题】 2015/03/09
- 程序在执行用之前就崩溃了 , 用调试器单步跟进 , 在 main() 之前就 死了
- UVA 580
- (hdu step 6.1.2)Eddy's picture(在只给出二维坐标点的情况下,求让n个点连通的最小费用)
- discuz!本地论坛与手机版
- java之maven工程读取配置文件
- Merge Intervals && Insert Interval
- URAL 1349. Farm (费马大定理)