现在网上有很多种针对网络状态检测的方法,在此做一个简单的分析和总结。
总体来说一共有七种。
一、 InternetAttemptConnect函数
这个函数可以说非常简单,只是尝试计算机连接到网络。并不考虑是用什么方式连接。当成功连接到网络的时候,函数返回ERROR_SUCCESS,也就是0。函数的参数永远都是0。
有一点需要注意的是,当计算机是用“小猫”也就是拨号的方式上网的时候,在执行InternetAttemptConnect这个函数时,会自动激活拨号连接功能。这也就是很多软件使用的拨号连接功能。比如Foxmail和FlashGet。它跟IE的连网状态有时候不统一。
Example:
TCHAR tszDebugMsg[100] = {0};
DWORD dwres = InternetAttemptConnect(0);
if (dwres != ERROR_SUCCESS )
{
_stprintf_s(tszDebugMsg, 100, TEXT("InternetAttemptConnect failed error code is %d.\r\n"), dwres);
}
else
{
_stprintf_s(tszDebugMsg, 100, TEXT("We can connect to internet, not consider connect mode~~\r\n"));
}
OutputDebugString(tszDebugMsg);