vc++新手请教关于程序启动时检测网络连接状态
各位前辈好,我新入vc++,刚学会用vs2008做了一个最最简单的程序,就是内置了一个 浏览器的控件,因为是打开程序在程序中浏览指定的URL,所以有必要在程序启动时检测是否能连接到指定的url或是否能正常上网,请问应该如何做呢,谢谢。
[解决办法]
在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的超时判断时一种基本的方法。