如何检测网络连接是否正常?
比如,网线拔掉了,程序能检测到
问题点数:100、回复次数:23Top
1 楼beni()回复于 2001-09-19 11:27:58 得分 5
很难
我一直没试成功
gzTop
2 楼zj_ok(zj_ok)回复于 2001-09-19 11:56:08 得分 5
设定时器定期pingTop
3 楼kook(疯子)回复于 2001-09-19 12:09:11 得分 0
up,有哪位知道吗?Top
4 楼explorer007(KKcat)回复于 2001-09-19 12:24:03 得分 5
你是要检查是否超时吗?Top
5 楼kook(疯子)回复于 2001-09-19 12:30:52 得分 0
我只需要检查网络连接是否正常(局域网),如网线是否插好Top
6 楼fangoxyz(小虫)回复于 2001-09-19 12:39:06 得分 1
我要想得到这们问题的答案,gzTop
7 楼neomeng(阿蒙)回复于 2001-09-19 12:49:53 得分 1
2000server就能监测到。Top
8 楼liouyun(四海任逍遥)回复于 2001-09-19 15:02:44 得分 1
#include "windows.h"
#include "wininet.h"
//判断网络是否连接。
DWORD flags;//上网方式
BOOL bIsConnect;
bIsConnect=InternetGetConnectedState(&flags,0);
if(!bIsConnect)
{
AfxMessageBox("请连接上internet!");
return;
}
另外在Setting中link的general的object/library modules中加入动态链接库 wininet.lib Top
9 楼masterjames(三月街)回复于 2001-09-19 15:16:18 得分 5
用SHELLEXEC调用PING命令就可测试是否连通。
PING 127.0.0.1
PING YOUR IP
PING DNS IP
Top
10 楼NowCan(城市浪人)回复于 2001-09-19 19:31:53 得分 5
我也觉得Win2000很神奇。
感觉除了定时ping以外没辙啊。可这个方法有不保险。Top
11 楼kook(疯子)回复于 2001-09-20 11:54:13 得分 0
再次呼吁高手现身
//问题简化一些,不管上网方式,只要实时检查网线的状态是插好还是拔掉Top
12 楼kook(疯子)回复于 2001-09-20 11:55:07 得分 0
用PING的方法还是觉得不到位Top
13 楼acptvc(微软全球技术中心 VC技术支持)回复于 2001-09-20 17:27:53 得分 30
感谢您使用微软产品。
在Windows 2000 环境下,有System Event Notification Services (SENS)函数可以判断当前系统的连接状态。使用SIO_ADDRESS_LIST_CHANGE和SIO_ROUTING_INTERFACE_CHANGE并调用WSAIoctl()。这是两种可能的方式。应用程序能通过调用WSAIoctl() 和SIO_ADDRESS_LIST_CHANGE注册地址改变的notification。 当网线被拔掉,这个notification就可以被一个应用程序收到。 同时,IsNetworkAlive() 应该是另一种简单的方法,但是当它用在LAN时有一些时间反应的问题。可能要用几分钟的时间去更新在LAN中连接的状态。
在非Windows2000的环境下,没有即刻反应的方法去判断网线的插拔。InternetGetConnectedState() 的 超时判断时一种基本的方法。
- 微软亚洲技术中心 VC技术支持
本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。
Top
14 楼beni()回复于 2001-09-20 17:32:41 得分 5
哦,怪不得2000那么神Top
15 楼kook(疯子)回复于 2001-09-23 12:34:12 得分 0
先谢了Top
16 楼tohigh(岁月的童话.NET)回复于 2001-09-23 13:01:56 得分 1
学习Top
17 楼111222(www.111222.cn)回复于 2001-09-24 00:59:56 得分 25
acptvc回答的真有意思...嘻嘻...
不过我有疑问啊
InternetGetConnectedState() 没法使用啊。
当用户的机器在“Internet 选项”的连接里设置了“从不进行拨号连接”(Never Dial a connect)时,用InternetGetConnectedState()函数将总返回FALSE
那样的话检测不到正确结果了......就
怎么办啊?Top
18 楼pursuer_zhao(永远有多远)回复于 2001-09-24 18:05:31 得分 1
gzTop
19 楼fiolin(幽深的水)回复于 2001-09-24 18:19:33 得分 5
ping IP 就够了!!Top
20 楼pursuer_zhao(永远有多远)回复于 2001-09-25 11:50:30 得分 5
help upTop
21 楼kook(疯子)回复于 2001-09-25 19:01:01 得分 0
已解决了,98下是可以的,谢谢各位。Top
22 楼111222(www.111222.cn)回复于 2001-09-26 09:25:39 得分 0
InternetGetConnectedState不能用,你不信......Top
23 楼kook(疯子)回复于 2001-09-27 16:21:31 得分 0
是没用 InternetGetConnectedStateTop




