Qt实现探测当前有没有网络连接(Wi-Fi)——QNetworkConfigurationManager.isOnline()
2017-02-28 14:14
387 查看
1、只需要探测当前有没有连上Wi-Fi(不用获取网络状态),可以调用<QNetworkConfigurationManager>类。
2、需要探测当前网络有没有数据来往,可以采用以下方法:
1:先声明一个槽:
2:在.cpp文件里实现这个槽函数。
3:若要检测有没有数据,则如下调用即可。
该方法的原理是通过lookUpHost()函数,ping通www.baidu.com,并返回其IP地址,如果返回了,即网络有效,如果ping了多次,还是没有任何返回,那就认为当前网络没有数据。
注:QNetworkConfigurationManager.isOnline()方法还暂不能监测指定某一路的在线情况。
转自:http://blog.csdn.net/z_jinye/article/details/38908285
QNetworkConfigurationManager mgr; if(!mgr.isOnline()) { qDebug()<<"请先连接Wi-Fi"; } else { qDebug()<<"当前已连接上Wi-Fi"; }
2、需要探测当前网络有没有数据来往,可以采用以下方法:
1:先声明一个槽:
void lookedUp(const QHostInfo &);
2:在.cpp文件里实现这个槽函数。
void MainWindow::lookedUp(const QHostInfo &host) { if(host.error() != QHostInfo::NoError) { qDebug() << "当前无网!"; errTime++; } else { qDebug() << host.addresses().first().toString(); ui->status->setText("已联网!"); netStatus = true; } if(errTime > 20) { ui->status->setText("拨号失败!"); ui->pushButton_2->setEnabled(true); } }
3:若要检测有没有数据,则如下调用即可。
QHostInfo::lookupHost("www.baidu.com", this, SLOT(lookedUp(QHostInfo)));
该方法的原理是通过lookUpHost()函数,ping通www.baidu.com,并返回其IP地址,如果返回了,即网络有效,如果ping了多次,还是没有任何返回,那就认为当前网络没有数据。
注:QNetworkConfigurationManager.isOnline()方法还暂不能监测指定某一路的在线情况。
转自:http://blog.csdn.net/z_jinye/article/details/38908285
相关文章推荐
- Qt实现探测当前有没有网络连接(Wi-Fi)
- Qt通过QNetworkAccessManager实现Http网络通信
- Qt网络编程之QNetworkAccessManager
- Qt的QNetworkConfigurationManager 类参考翻译
- iOS11实现App内自动连接Wi-Fi的方法
- 获取手机电池状态,手机内存总容量大小,当前可用容量,手机IP地址,手机当前所连接Wi-Fi的名称
- Qt网络编程之QNetworkAccessManager
- 【Android】多功能二维码实现思路,自动连接WI-FI
- 解决macOS Sierra WI-FI无法连接网络
- iOS获取当前无线连接的SSID信息和WI-FI名称
- MacBook Pro 链接无线Wi-Fi网络问题(Wi-Fi正常打开,无法连接路由器)
- 程序员一枚】Qt网络开发之QNetworkAccessManager的使用
- 如何让无显示器的家用设备连接到Wi-Fi网络?
- 如何实现3G/4G与Wi-Fi网络之间稳定且无缝地切换
- Wi-Fi探查连接工具帮无线网络管理连接
- Android官网培训课:用Wi-Fi Direct进行网络连接
- Qt网络开发之QNetworkAccessManager使用要点
- 需求:获取iPhone当前Wi-Fi的SSID等网络信息
- iOS 获取当前设备连接Wi-Fi的方法总结
- QTcpSocket 对连接服务器中断的不同情况进行判定(六种情况,其中一种使用IsNetworkAlive API方法)