Qt 如何从QNetworkAccessManager::networkAccessibleChanged()获取信号?
我正在使用QNetworkAccessManager执行HTTP请求。我们发现,我们正在使用的网络连接偶尔会脱机,我想主动检测链路何时断开 我已将插槽连接到QNetworkAccessManager::networkAccessibleChanged()信号,但未看到插槽的任何输出 在寻找解决方案时,我最接近的答案是以下讨论: 然而,建议的解决方案并没有解决我的问题Qt 如何从QNetworkAccessManager::networkAccessibleChanged()获取信号?,qt,qnetworkaccessmanager,Qt,Qnetworkaccessmanager,我正在使用QNetworkAccessManager执行HTTP请求。我们发现,我们正在使用的网络连接偶尔会脱机,我想主动检测链路何时断开 我已将插槽连接到QNetworkAccessManager::networkAccessibleChanged()信号,但未看到插槽的任何输出 在寻找解决方案时,我最接近的答案是以下讨论: 然而,建议的解决方案并没有解决我的问题 关于我可能做错了什么有什么建议吗 好的,经过更多的实验,我找到了答案 我的问题是我的系统上有几个以太网接口 在与我的问题相关的讨论
关于我可能做错了什么有什么建议吗 好的,经过更多的实验,我找到了答案 我的问题是我的系统上有几个以太网接口 在与我的问题相关的讨论中,建议添加以下代码:
QNetworkAccessManager* mNetworkAccessManager = new QNetworkAccessManager();
QNetworkConfigurationManager manager;
mNetworkAccessManager->setConfiguration(manager.defaultConfiguration());
QNetworkAccessManager::setConfiguration()的文档表明默认配置是自动使用的;所以这是不必要的,但它让我走上了正确的道路
我的问题是,默认配置附加到不同的接口,而不是我的连接要通过的接口;因此,我做了以下工作:
QString ifName = "eth2";
QNetworkAccessManager* pNetworkAccessManager = new QNetworkAccessManager();
QNetworkConfigurationManager manager;
foreach(QNetworkConfiguration cfg, manager.allConfigurations()) {
if (cfg.name() == ifName) {
pNetworkAccessManager->setConfiguration(cfg);
break;
}
}
现在,我的位置被叫到了
我希望有一种更简单的方法来获得所需的配置。现在,我必须弄清楚如何从IP地址开始配置,而不是从接口名开始