Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何从QNetworkAccessManager::networkAccessibleChanged()获取信号?_Qt_Qnetworkaccessmanager - Fatal编程技术网

Qt 如何从QNetworkAccessManager::networkAccessibleChanged()获取信号?

Qt 如何从QNetworkAccessManager::networkAccessibleChanged()获取信号?,qt,qnetworkaccessmanager,Qt,Qnetworkaccessmanager,我正在使用QNetworkAccessManager执行HTTP请求。我们发现,我们正在使用的网络连接偶尔会脱机,我想主动检测链路何时断开 我已将插槽连接到QNetworkAccessManager::networkAccessibleChanged()信号,但未看到插槽的任何输出 在寻找解决方案时,我最接近的答案是以下讨论: 然而,建议的解决方案并没有解决我的问题 关于我可能做错了什么有什么建议吗 好的,经过更多的实验,我找到了答案 我的问题是我的系统上有几个以太网接口 在与我的问题相关的讨论

我正在使用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地址开始配置,而不是从接口名开始