监控互联网连接状态

时间:2012-12-08 17:13:12

标签: qt

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

2 个答案:

答案 0 :(得分:1)

如果您使用的是QML,Qt Mobility包中会有NetworkInfo QML element。另外,这包含一个示例,如何检查是否存在WLAN连接。

答案 1 :(得分:1)

我使用此代码检查互联网状态。

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;
}