平时,我们检测网络是否连接,一般都是用ping命令。实际开发中,经常也需要检测网络状态。最近之项目过程中就需要实现这一的功能,在网络断开时给出相应的用户提示。QHostInfo给我们提供了一个方便的接口,实现这一的功能。话不多说,先上一段代码demo
NetWorkTest *NetWorkTest::GetInstance()
{
static NetWorkTest instance;
return &instance;
}
void NetWorkTest::checkNetWork()
{
QHostInfo::lookupHost("www.baidu.com",this,SLOT(lookedUpSlot(QHostInfo)));
qDebug()<< "lookupHost";
}
NetWorkTest::NetWorkTest(QObject *parent) : QObject(parent)
{
}
void NetWorkTest::lookedUpSlot(QHostInfo hostInfo)
{
qDebug()<<__FUNCTION__;
bool status = false;
if(hostInfo.error() == QHostInfo::NoError)
{
status = true;
}
emit netWorkStateChanged(status);
}
//main.cpp
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);