わかりました、さらに実験した後、私は答えを見つけました...
私の問題は、システムに複数のイーサネット インターフェイスがあることです。
私の質問からリンクされたディスカッションでは、次のコードを追加することが提案されました。
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 アドレスから始まる構成を取得する方法を理解する必要があります。