CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

如何检测网络连接是否正常?

楼主kook(疯子)2001-09-19 11:04:36 在 VC/MFC / 网络编程 提问

 
  比如,网线拔掉了,程序能检测到  
   
  问题点数: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

相关问题

  • 怎样实时检测网络连接是否正常?
  • 怎样检测与SQL数据库的连接是否正常??/
  • 如何检测是否连接了internet?
  • 急急急!如何检测网卡状态是否正常?
  • 如何检测SQL数据库是否已有连接?
  • ◎◎◎◎◎◎◎◎如何检测机器是否连接INTNET网上?◎◎◎◎◎◎◎◎
  • vb 中如何检测系统已经(或没有)正常连接打印机 ?
  • 如果检测机器是否安装网卡并工作正常!
  • 已知一个局域网IP地址,如何检测网络是否正常!
  • 用VC如何检测计算机是否通过拨号网络连接?

关键词

  • 连接
  • 网络
  • internetgetconnectedstate
  • 网线
  • bisconnect
  • 拔掉
  • 调用
  • 是否
  • sio
  • 判断

得分解答快速导航

  • 帖主:kook
  • beni
  • zj_ok
  • explorer007
  • fangoxyz
  • neomeng
  • liouyun
  • masterjames
  • NowCan
  • acptvc
  • beni
  • tohigh
  • 111222
  • pursuer_zhao
  • fiolin
  • pursuer_zhao

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo