在开发中,需要判断是否有网络连接,于是写了个函数,实现代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
//判断是否有网络连接 static
BOOL
DoHaveInternetConnection()
{ BOOL
bRet = FALSE;
// 如果函数返回FALSE,则肯定没有连接
DWORD
dwFlag;
__try
{
if
(InternetGetConnectedState(&dwFlag, 0))
{
// 必须有下列任意一种连接,才认为是有连接
// 因为INTERNET_CONNECTION_CONFIGURED被置位也可能是没有连接
if
((dwFlag&INTERNET_CONNECTION_LAN) ||
(dwFlag&INTERNET_CONNECTION_MODEM) ||
(dwFlag&INTERNET_CONNECTION_PROXY))
{
bRet = TRUE;
}
}
}
__except( EXCEPTION_EXECUTE_HANDLER )
{
bRet = FALSE;
}
return
bRet;
} |