源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#判断网络连接状态

  • 时间:2021-11-20 19:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#判断网络连接状态
运行效果 [img]http://files.jb51.net/file_images/article/201401/20140117101412.jpg?2014017101515[/img]
[u]复制代码[/u] 代码如下:
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();         }         /// <summary>         /// 检测网络连接状态         /// </summary>         /// <param name="urls"></param>         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);         /// <summary>         /// 判断本地的连接状态          /// </summary>         /// <returns></returns>         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;         }         /// <summary>         /// Ping命令检测网络是否畅通         /// </summary>         /// <param name="urls">URL数据</param>         /// <param name="errorCount">ping时连接失败个数</param>         /// <returns></returns>         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     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部