用C# 写一个判断网络连接是否正常的 程序

liyanqing_01 2010-09-30 02:30:16


用C#写个判断网络是否正常连接


如果正常
返回一个正常提示


反之一个错误提示
...全文
1204 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
jce195447 2013-01-13
  • 打赏
  • 举报
回复
Mark 备用
winseer 2013-01-13
  • 打赏
  • 举报
回复
常用知识,标记备用
毛员外 2012-05-26
  • 打赏
  • 举报
回复
记得当年我是ping滴,嘿嘿
Joiy 2012-05-26
  • 打赏
  • 举报
回复
虽然没看懂,标记下、、后用。
花痴 2012-05-26
  • 打赏
  • 举报
回复
如果只要知道电脑的网络是否连通的话,就值需要调用2L的方法检查一下就好了。如果需要知道本机是否可以连接到特定的服务器的,可以使用ping的方式。如果需要知道本机连接到的服务器是否能请求服务器某些API的时候,就需要请求特定的服务器API
熙风 2012-05-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

C# code

[Flags]
enum ConnectionState : int
{
INTERNET_CONNECTION_MODEM = 0x1, INTERNET_CONNECTION_LAN = 0x2, INTERNET_CONNECTION_PROXY = 0x4, INTERNET_RAS_INSTALLED = 0x……
[/Quote]

+1
这个好用,我用的就是这个
脸肿了 2012-05-26
  • 打赏
  • 举报
回复
好东西啊
黑哥 2012-05-26
  • 打赏
  • 举报
回复
http://hi.baidu.com/liujw1220/blog/item/99a50e09ba27922e6a60fb6e.html
tf534768683 2012-05-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

string str="";
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = true;
string data = "";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout =……
[/Quote]


IP是啥???
vkv123 2012-02-21
  • 打赏
  • 举报
回复
前面别忘了导入
using System.Runtime.InteropServices;

class wangluo
{
//检测网络状态
[DllImport("wininet.dll", EntryPoint = "InternetGetConnectedState")]
public extern static bool InternetGetConnectedState(out int conState, int reder);
public static bool jiance()
{
int Desc = 0;
return InternetGetConnectedState(out Desc, 0);
}
}

使用时调用:
if(wangluo.jiance())
{
MessageBox.Show("网络连接正常");
}
else
{
MessageBox.Show("网络连接不正常");
}
杨友山 2012-02-21
  • 打赏
  • 举报
回复
那句-诺言 2012-02-21
  • 打赏
  • 举报
回复
6楼是人才啊,谢谢啦,很有用
stony_cao 2011-12-20
  • 打赏
  • 举报
回复
好東西,如果可以自動連接網絡硬盤就好了.
事理 2010-09-30
  • 打赏
  • 举报
回复
好东西,收藏。
wuyq11 2010-09-30
  • 打赏
  • 举报
回复
string str="";
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = true;
string data = "";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 1200;
PingReply reply = pingSender.Send(IP, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
str= "网络正常";
}
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue);

public bool IsInternetConnected()
{
int i = 0;

return InternetGetConnectedState(out i, 0);
}
iey000 2010-09-30
  • 打赏
  • 举报
回复
友情帮顶~~~~~~~~~~~~~~
可以考虑这个思路

try
{
...//路由到百度
return true;
}
catch
{return false;}
whowhen21 2010-09-30
  • 打赏
  • 举报
回复
可以通过Net ping一下远程服务器,可以ping通,网络正常。也可以用Win32API嘛,2L已经写了啦~
***********************************************************
欢迎使用CSDN 小秘书
每天顶贴即可得到10个积分O(∩_∩)O~
***********************************************************
happyboyxq 2010-09-30
  • 打赏
  • 举报
回复
直接用Socket连接一下指定的IP和端口就可以了。如果能连接上就是通的,不能连接上就没开端口。
rojiny_biz 2010-09-30
  • 打赏
  • 举报
回复

[Flags]
enum ConnectionState : int
{
INTERNET_CONNECTION_MODEM = 0x1, INTERNET_CONNECTION_LAN = 0x2, INTERNET_CONNECTION_PROXY = 0x4, INTERNET_RAS_INSTALLED = 0x10, INTERNET_CONNECTION_OFFLINE = 0x20, INTERNET_CONNECTION_CONFIGURED = 0x40
}

[DllImport("wininet.dll", CharSet = CharSet.Auto)]
static extern bool InternetGetConnectedState(ref ConnectionState lpdwFlags, int dwReserved);

public static bool IsConnectedToInternet()
{
ConnectionState Description = 0;
bool conn = InternetGetConnectedState(ref Description, 0);
return conn;
}
mjp1234airen4385 2010-09-30
  • 打赏
  • 举报
回复
有WindowsAPI函数,调用以后,返回网络是否连通。
包括使用的局域网还是拨号连接,都可以知道。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧