当前位置:  编程技术>移动开发 iis7站长之家

c#判断网络连接状态

    来源: 互联网  发布时间:2014-10-27

    本文导语:  运行效果 代码如下:using System;using System.Collections.Generic;using System.Text;using System.Net.NetworkInformation; namespace ConsoleApplication1{    class Program    {        public static void Main(string[] args)        {            string url = "www.b...

运行效果

代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.NetworkInformation;

namespace ConsoleApplication1
{
    class Program
    {
        public static void Main(string[] args)
        {
            string url = "www.baidu.com;www.sina.com;www.cnblogs.com;www.google.com;www.163.com;www.csdn.com";
            string[] urls = url.Split(new char[] { ';' });
            CheckServeStatus(urls);

            Console.ReadKey();
        }

        ///
        /// 检测网络连接状态
        ///
        ///
        public static void CheckServeStatus(string[] urls)
        {
            int errCount = 0;//ping时连接失败个数

            if (!LocalConnectionStatus())
            {
                Console.WriteLine("网络异常~无连接");
            }
            else if (!MyPing(urls, out errCount))
            {
                if ((double)errCount / urls.Length >= 0.3)
                {
                    Console.WriteLine("网络异常~连接多次无响应");
                }
                else
                {
                    Console.WriteLine("网络不稳定");
                }
            }
            else
            {
                Console.WriteLine("网络正常");
            }
        }

        #region 网络检测

         private const int INTERNET_CONNECTION_MODEM = 1;
        private const int INTERNET_CONNECTION_LAN = 2;

        [System.Runtime.InteropServices.DllImport("winInet.dll")]
        private static extern bool InternetGetConnectedState(ref int dwFlag, int dwReserved);

        ///
        /// 判断本地的连接状态
         ///
        ///
        private static bool LocalConnectionStatus()
        {
            System.Int32 dwFlag = new Int32();
            if (!InternetGetConnectedState(ref dwFlag, 0))
            {
                Console.WriteLine("LocalConnectionStatus--未连网!");
                return false;
            }
            else
            {
                if ((dwFlag & INTERNET_CONNECTION_MODEM) != 0)
                {
                    Console.WriteLine("LocalConnectionStatus--采用调制解调器上网。");
                    return true;
                }
                else if ((dwFlag & INTERNET_CONNECTION_LAN) != 0)
                {
                    Console.WriteLine("LocalConnectionStatus--采用网卡上网。");
                    return true;
                }
            }
            return false;
        }

        ///
        /// Ping命令检测网络是否畅通
        ///
        /// URL数据
        /// ping时连接失败个数
        ///
        public static bool MyPing(string[] urls, out int errorCount)
        {
            bool isconn = true;
            Ping ping = new Ping();
            errorCount = 0;
            try
            {
                PingReply pr;
                for (int i = 0; i < urls.Length; i++)
                {
                    pr = ping.Send(urls[i]);
                    if (pr.Status != IPStatus.Success)
                    {
                        isconn = false;
                        errorCount++;
                    }
                    Console.WriteLine("Ping " + urls[i] + "    " + pr.Status.ToString());
                }
            }
            catch
            {
                isconn = false;
                errorCount = urls.Length;
            }
            //if (errorCount > 0 && errorCount < 3)
            //  isconn = true;
            return isconn;
        }

        #endregion
    }
}


    
 
 

您可能感兴趣的文章:

  • C#判断日期是否到期的方法
  • C#实现判断图形文件格式的方法
  • C#判断数据类型的简单示例代码
  • c#判断正确的ip地址格式示例
  • c#判断网络连接状态的示例分享
  • c#简单判断是否是闰年的方法代码
  • C#利用反射来判断对象是否包含某个属性的实现方法
  • C#判断ip地址是否可以ping的通
  • c#判断字符是否为中文的三种方法分享(正则表达式判断)
  • c#判断输入的是不是数字的小例子
  • c#判断输入内容是否数字的代码
  • C# 正则判断一个数字的格式是否有逗号的代码
  • C#中判断、验证字符串是否为日期格式的实现代码
  • C#中判断字符串是全角还是半角的实现代码
  • c#中判断字符串是不是数字或字母的方法
  • C#实现判断字符串中是否包含中文的方法
  • c#判断操作系统位数实例代码
  • c#判断操作系统位数的示例分享
  • C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
  • C#判断某程序是否运行的方法
  • 如何判断一个文件正处于打开状态?
  • 如何判断一个线程是否处于阻塞状态
  • 判断一个进程的状态
  • C下判断socket连接状态,怎么实现
  • 请教几个关于判断SD卡状态的问题
  • 如何判断 mount 的状态
  • 在一个线程中的run()方法里面用无限循环的方式来检测某一个类中的变量的状态,当检测到该状态为true时,再判断该变量如果连续维持true状
  • Android中监听判断网络连接状态的方法
  • 怎样判断系统中某个进程已经是"挂起"的状态?
  • Android判断和监听底座状态和类型的方法介绍
  • PHP判断表单复选框选中状态完整例子
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 empty():判断Vector是否为空(返回true时为空)
  • linux->shell-> if 条件判断,关于软连接的判断!
  • javascript操作html复选框checkbox:如何判断复选框是否被选中
  • shell如何判断文件是否存在,如何判断变量是否为空
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 怎么判断串口已经收到数据,并及时读出?怎么判断串口已经将写入的数据发送完毕?
  • java实现判断字符串是否全是数字的四种方法代码举例
  • 在判断自符是否等于**时,用equals(“**”),那么如果我想判断它的值是否>=2该用什么呢?
  • 我是学pb的,判断闰年的是isdate("2-28"),但在java里怎么判断呢?
  • linux 下的自解压文件是什么格式,如何判断文件是否为自解压c++或者脚本判断均可
  • mysql中如何判断当前是字符 mysql判断字段中有无汉字
  • 知道TCP/UDP的包头,如何判断其应用层协议类型,struct tcphdr和 struct udphdr结构中那个变量能判断应用层协议类型。
  • 如何判断在线用户,主要是如何判断用户关闭所有窗口(即他已经不在线了)?
  • 如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方?
  • 判断图片-判断位图是否是黑白图片的方法
  • JQuery 判断某个属性是否存在hasAttr用法
  • 请问如何判断一个文件夹是否存在
  • 判断文件格式的c库函数
  • sftp命令如何判断成功与否?
  • Shell条件判断疑问?
  • java判断远程服务器上的文件是否存在的方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3