前言
在Qt中判断网络是否连接有两种方式,其中一种是网络连接但是不一定能上网,可能只是连接了网线或者Wi-Fi,但不一定能够上互联网。另一种判断该网络是否可以连接互联网,两种情况的判别方式有所区别。
正文
第一种:只需要判断网络是否有连接,不一定能上网
这个很简单,直接通过Qt的类QNetworkConfigurationManager自带的函数就可以判断(该方法也适用于Android平台):
bool CommonParameter::isNetWorkOnline()
{
QNetworkConfigurationManager mgr;
return mgr.isOnline();
}
第二种:判断是否能上网
这种方式是检查是否连接互联网,原理:通过访问指定的网站,如果能访问成功表示已正常连接。
void CommonParameter::checkNetWorkOnline()
{
QHostInfo::lookupHost("www.baidu.com",this,SLOT(onLookupHost(QHostInfo)));
}
void CommonParameter::onLookupHost(QHostInfo host)
{
if (host.error() != QHostInfo::NoError) {
qDebug() |