zoukankan      html  css  js  c++  java
  • Qt实现探测当前有没有网络连接(Wi-Fi)——QNetworkConfigurationManager.isOnline()

    1、只需要探测当前有没有连上Wi-Fi(不用获取网络状态),可以调用<QNetworkConfigurationManager>类。

        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

  • 相关阅读:
    "Illegal group reference"异常的分析
    一个基于WEB的js时间控件的实现
    ASP.NET网站的网络安全性
    关于"parseInt"
    【C#算法】冒泡排序 选择排序 插入排序 希尔排序转
    【c#】web.config续
    【C#】GridView用法
    [C#]接口引
    【SQL】DBCC
    【C#】泛型
  • 原文地址:https://www.cnblogs.com/liushui-sky/p/6478642.html
Copyright © 2011-2022 走看看