zoukankan      html  css  js  c++  java
  • 判断网络是否链接

    如何用C#判断网络是否连接呢,这个有N多方法,我们下面尽量说的完整一些。

    第一种办法,最简单的,但是不准确,呵呵

    private void btnIsConnect_Click(object sender, EventArgs e)
    {
        if (SystemInformation.Network) {
            MessageBox.Show("已经联网,但是不确定是互联网还是局域网");
        }
    }
    

    2

    这个办法在局域网下也是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("你网线掉了啦");
    
  • 相关阅读:
    DevExpress的GridControl的实时加载数据解决方案(取代分页)
    WinForm程序虚拟分页(实时加载数据)
    C#使用反射特性构建访问者模式
    WinApi学习笔记内存的复制,填充,输出等操作
    PL/SQL学习笔记程序包
    WinApi学习笔记创建进程
    PL/SQL学习笔记触发器
    WinApi学习笔记获取光驱中的信息
    WinApi学习笔记读写文件
    不通过配置文件启动WCF服务
  • 原文地址:https://www.cnblogs.com/zhaoshujie/p/9594766.html
Copyright © 2011-2022 走看看