gpt4 book ai didi

qt - 如何从 QNetworkAccessManager::networkAccessibleChanged() 获得信号?

转载 作者:行者123 更新时间:2023-12-04 04:44:46 25 4
gpt4 key购买 nike

我正在使用 QNetworkAccessManager 来执行 HTTP 请求。我们发现我们使用的网络连接偶尔会掉线,想主动检测一下什么时候掉线。

我已将一个插槽连接到 QNetworkAccessManager::networkAccessibleChanged() 信号,但我的插槽没有看到任何输出。

在寻找解决方案时,我最接近答案的是以下讨论:http://www.qtcentre.org/threads/37514-use-of-QNetworkAccessManager-networkAccessible

但是,建议的解决方案并没有解决我的问题。

关于我可能做错了什么的任何建议?

最佳答案

好的,经过更多的实验,我找到了答案......

原来我的问题是我的系统上有几个以太网接口(interface)。

在我的问题链接的讨论中,建议添加以下代码:

QNetworkAccessManager* mNetworkAccessManager = new QNetworkAccessManager();
QNetworkConfigurationManager manager;
mNetworkAccessManager->setConfiguration(manager.defaultConfiguration());

QNetworkAccessManager::setConfiguration() 的文档表明自动使用默认配置;所以这是不必要的,但它让我走上了正确的轨道。

我的问题是默认配置附加到与我的连接所经过的接口(interface)不同的接口(interface);所以我做了以下事情:
QString ifName = "eth2";
QNetworkAccessManager* pNetworkAccessManager = new QNetworkAccessManager();
QNetworkConfigurationManager manager;
foreach(QNetworkConfiguration cfg, manager.allConfigurations()) {
if (cfg.name() == ifName) {
pNetworkAccessManager->setConfiguration(cfg);
break;
}
}

现在,我的插槽被调用。

我希望有一种更简单的方法来获得所需的配置。现在,我必须弄清楚如何获取以 IP 地址而不是接口(interface)名称开头的配置。

关于qt - 如何从 QNetworkAccessManager::networkAccessibleChanged() 获得信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com