首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Qt中查看以太网口连接状态?

如何在Qt中查看以太网口连接状态?
EN

Stack Overflow用户
提问于 2018-12-14 14:58:30
回答 2查看 703关注 0票数 0

我是第一次使用Qt .Actually,我想通过qt应用程序检查以太网是否连接。例如:当数据通过以太网从源传输到目标时。如果我突然拔掉以太网电缆,我的Qt应用程序必须给出一些弹出消息,比如“连接不可用”。有什么方法可以找到这个吗?最后,为我的英语道歉。

EN

回答 2

Stack Overflow用户

发布于 2018-12-14 15:02:31

您可能需要考虑Qt“不记名管理”API:

http://doc.qt.io/qt-5/bearer-management.html

例如:

代码语言:javascript
复制
/ Set Internet Access Point
QNetworkConfigurationManager manager;
const bool canStartIAP = (manager.capabilities()
                          & QNetworkConfigurationManager::CanStartAndStopInterfaces);
// Is there default access point, use it
QNetworkConfiguration cfg = manager.defaultConfiguration();
if (!cfg.isValid() || (!canStartIAP && cfg.state() != QNetworkConfiguration::Active)) {
    QMessageBox::information(this, tr("Network"), tr(
                                 "No Access Point found."));
    return;
}
票数 0
EN

Stack Overflow用户

发布于 2021-04-10 18:12:51

如果你在Linux上,我找到了一个很好的主意,可以用QT和QProcess检查以太网电缆是否物理连接。

代码语言:javascript
复制
QProcess process;
QString sNetCableStatus = "";
process.start("sh", QStringList()<<"-c"<<"grep \"\" /sys/class/net/eth0/carrier");
process.waitForFinished();
sNetCableStatus = process.readAllStandardOutput();
if (sNetCableStatus.length() != 0)
{
    if (sNetCableStatus.left(1) == "1")
    {
        //connected
    }
    else if(sNetCableStatus.left(1) == "0")
    {
        //disconnected
    }
    else
    {
        //that should not happen
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53774854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档