手机
当前位置:查字典教程网 >编程开发 >C#教程 >c#判断网络连接状态
c#判断网络连接状态
摘要:运行效果复制代码代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.T...

运行效果

c#判断网络连接状态1

复制代码 代码如下:

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

}

}

【c#判断网络连接状态】相关文章:

常用类之TCP连接类-socket编程

c#读取文件详谈

客户端实现蓝牙接收(C#)知识总结

C#中判断本地系统的网络连接状态的方法

C#版ftp方法实现类的代码

利用多线程句柄设置鼠标忙碌状态的实现方法

C# 判断字符串为空的几种办法

c#判断输入的是不是数字的小例子

C# 获取系统进程的用户名

C#/Java连接sqlite与使用技巧

精品推荐
分类导航