問題タブ [qnetworkreply]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QNetworkAccessManager と QNetworkReply によるタイムアウト処理
ネットワーク タイムアウト検出のための QNetworkAccessManager と QTimers のタイミングの問題に直面しています。ただし、これらの QTimer をいつ開始するかは明確ではありません。
最初の試みは、get リクエストの直後にタイマーを開始することでした。しかし、これは高負荷下での早期アボートにつながります。どうやら QNetworkAccessManager は独自のキューイングを行い、リクエストを送信する前にタイムアウトが発生します。
QNetworkAccessManager::uploadProgress()
2 番目の試行は、最初のまたは内でタイマーを開始することQNetworkAccessManager::uploadProgress()
でしたが、これはネットワーク接続がない場合には機能しません。明らかに、報告する進行状況はまったくなく、タイムアウトはそもそも開始されていません。
この問題に直面するのは私たちだけではないようです。
ありがとう!
c++ - QNetworkAccessManager->Post() を使用すると、アプリケーションの終了時に SEGV が発生する
****更新: Windows でのみ segfault が発生することに気付きましたが、Linux では問題ありません。Windows では、QT 5.5 と MinGW32 を使用しています。その理由を今でも知りたいです。
**** 最初の質問: 特に難しいことはありません。基本的なコンソール アプリケーションを作成します。Post() リクエストを送信する QNetworkAccessManager があります。コンソールを閉じると、segfault が発生します。
リクエストが正常に送受信されることに注意してください。私の質問は、そのセグメンテーション違反についてのみです。
Post() リクエストが送信されない場合、コンソールを閉じてもクラッシュしません。スタックからの助けはあまりありません。
スタック
メイン.cpp
CNetworkHandleTest.cpp
CNetworkHandleTest.h
qt - Qt アプリケーション スタック オーバーフロー例外
QNetworkReply::readAll
に示すように、Foo()
完了したらもう一度呼び出す必要があるように呼び出したいと思います。
Qt Gui アプリケーションが でクラッシュしたため、これが必要です0xC00000FD: Stack overflow exception
。コールスタックでは、以下のコールスタックに示すように、関数の呼び出しが繰り返されました。
同期QEventLoop
を呼び出すために使用しているにもかかわらず、再帰がどのように可能であるかがわかりません。readAll()
My Gui アプリケーションは、ユーザーがクリックして開始するために使用されますreadAll()
。
クラッシュを防ぐ方法はありますか?