Qt 监视internet连接状态

Qt 监视internet连接状态,qt,Qt,如何在qt中监视internet连接状态?我的意思是,我希望能够将图标更改为活动/非活动,这取决于是否存在internet连接。如果您使用的是QML,则Qt Mobility软件包中有。另外,它还包含一个示例,如何检查是否存在WLAN连接。我使用此代码检查internet状态 bool ConnectivityManager::isOnline() { bool retVal = false; QNetworkAccessManager nam; QNetworkRequ

如何在qt中监视internet连接状态?我的意思是,我希望能够将图标更改为活动/非活动,这取决于是否存在internet连接。

如果您使用的是QML,则Qt Mobility软件包中有。另外,它还包含一个示例,如何检查是否存在WLAN连接。

我使用此代码检查internet状态

bool ConnectivityManager::isOnline()
{
    bool retVal = false;
    QNetworkAccessManager nam;
    QNetworkRequest req(QUrl("http://www.google.com"));
    QNetworkReply* reply = nam.get(req);
    QEventLoop loop;
    QTimer timeoutTimer;

    connect(&timeoutTimer, SIGNAL(timeout()), &loop, SLOT(quit()));
    connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));

    timeoutTimer.setSingleShot(true);
    timeoutTimer.start(3000);

    loop.exec();

    if (reply->bytesAvailable())
    {
        retVal = true;
    }

    return retVal;
}

什么决定连接是否“存在”?Joe只为你,如果我连接到internet,连接就存在;如果我没有连接,连接就不存在。这有意义吗?嗯,你可以很容易地知道你是否有IP地址。连接到互联网是比较困难的,这意味着你必须看看你是否可以从你所在的外部网站。这就是为什么我问你——你需要看看你是否有一个活动的网络连接,或者你实际上在一个可以连接到internet的网络上吗?@Joe,对不起,但是根据你的说法,“监视internet连接状态”意味着什么?拜托,别傻了。@Joe监控互联网连接状态-互联网连接状态可能是什么?是的,但可能不是pinging goolge检测工作互联网连接的理想解决方案,你的用户必须在每次谷歌搜索之后验证他们不是机器人。