我是adsl上网的我用下面的方法检测网络链接,判断不准确
设置断点测试,不论是否连接网络return state都返回true
怎么回事??[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState( out int connectionDescription, int reservedValue ) ;
private bool IsConnected()
{
int I=0;
bool state = InternetGetConnectedState(out I,0);
return state;
}
设置断点测试,不论是否连接网络return state都返回true
怎么回事??[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState( out int connectionDescription, int reservedValue ) ;
private bool IsConnected()
{
int I=0;
bool state = InternetGetConnectedState(out I,0);
return state;
}
解决方案 »
- wcf小代码,不具有 ServiceContractAttribute 属性的错误。
- owc11 做统计图??
- 新建c#项目,好象未保存时,也可以运行这个项目,不解,此时文件存在何处呢?难道未保存前全部项目内容全暂存于内存中吗?
- 刚参加工作,诚心求教尽快提高编程水平的系统方法
- 问题不难,20分白送的
- 我的.net中怎么看不见“安装和部署”项
- Microsoft.Jet.OLEDB作为driver,怎样打开有密码的excel文件
- 如何判断处理事件和委托
- 大哥~~~帮帮忙吧!!在线等!!!
- 如何对RichTextBox进行预览,打印.
- 急!!!CS0234的问题
- 用tcpclient + ssl 下载邮件,想中途中断下载去下载另一封。
我是5个人共用一个猫儿(带路由功能),两个ADSL账号
情况一:拔掉我机子的网线(相当于关掉调解器),InternetGetConnectedState返回false
情况二:不拔网线,但是pc机不拨号, InternetGetConnectedState返回ture,LAN型网络链接
情况三:不拔网线,但是pc机拨号, InternetGetConnectedState返回true,MODEM网络链接这函数是不是判断调解器是否有网络连通啊,我想判断的是本机的网络连通状态,
上面这三种情况都不是我想要的
我的目的是:电脑ADSL建立连接了,表示网络连通
电脑ADSL没建立连接,表示未链接网络怎么做到这点??ping么?大大们等不等告诉俺怎么判断本机的网络连接状况
实现代码:
http://www.csharphelp.com/archives2/files/archive296/ping.cs
private void Form_Load(object sender, EventArgs e)
{
public Ping ping = new Ping(); public PingReply res; try
{
res = ping.Send("www.google.com");
}
catch (Exception a)
{
MessageBox.Show(a.Message);
}
try
{
if (res.Status != System.Net.NetworkInformation.IPStatus.Success)
{
this.reflectionLabel1.Text = "<b>请检查网络连接是否正常</b>";
}
else
{
this.reflectionLabel1.Text = "<b>已连接</b>";
}
}
catch (Exception ae)
{
MessageBox.Show(ae.Message);
}
}
这个ping方法亲自尝试,绝对有效,也是曾经在Csdn上找到的!楼主试试把!
public string sPing(string IP)
{
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = true;
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 1200;
//string IP = "192.168.100.1";
PingReply reply = pingSender.Send(IP, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
//string sText; string sPing;
sPing = "网络正常";
return sPing;
}
else
{
return "网络不通";
}
}
的确如此,只要插了网线,任务栏有显示“本地已连接”一类的就会返回true
netstat命令
一个自启动程序,用ping判断网络状况,能ping通,但是超出了timeout时间,结果链接网络失败
另一个手工链接,不判断网络状况,直接链接网络,结果链接成功了奶奶的,要效果,就只有将慢速度了