winfrom怎么判断是否可以连接inter网,而不是局域网

qaz231564 2012-07-03 01:34:56
用PING的方法我试过了,如果没有得到响应,程序会卡5、6秒左右,实在每办法了 希望大家帮帮忙啊
...全文
157 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qaz231564 2012-08-10
  • 打赏
  • 举报
回复
谢谢大家,问题解决了
熙风 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

第一种方法:
C# code

//导入dll
[DllImport("wininet.dll", EntryPoint = "InternetGetConnectedState")]
//判断网络状况的方法,返回值true为连接,false为未连接
public extern static bool InternetGetConnectedState(out int conState, i……
[/Quote]

我用的就是第一种
kunkun0921 2012-07-04
  • 打赏
  • 举报
回复
第一种方法:

//导入dll
[DllImport("wininet.dll", EntryPoint = "InternetGetConnectedState")]
//判断网络状况的方法,返回值true为连接,false为未连接
public extern static bool InternetGetConnectedState(out int conState, int reder);


//在你的button事件中写下如下代码就行
private void btnNetStatus_Click(object sender, EventArgs e)
{
int n =0;
if (InternetGetConnectedState(out n,0))

{
MessageBox.Show("网终处于连接状态");

}
else

{
MessageBox.Show("网络处于未连接状态");

}
}


第二种方法:

System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping();
System.Net.NetworkInformation.PingReply reply = ping.Send("www.baidu.com");
System.Net.NetworkInformation.IPStatus ipstatus = reply.Status;
//如果ipstatus为success是连网,否则未连网
maidou_6 2012-07-03
  • 打赏
  • 举报
回复

Thread op = new Thread(new ThreadStart(YourPing));
op.IsBackground = true;
op.Start();
qaz231564 2012-07-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
开独立的线程去PING
[/Quote]

可以参考下代码吗
cheng2005 2012-07-03
  • 打赏
  • 举报
回复
开独立的线程去PING
maidou_6 2012-07-03
  • 打赏
  • 举报
回复
可在 PingOptions 里设置 超时时间,不至于每次卡5、6秒的。
怕卡的话,可以 用个单独线程来 ping 啊。

不用ping的话,可参考 NetworkInterface 类
可检查哪些网络连接可用。

110,545

社区成员

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

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

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