問題タブ [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.
c++ - Qt QNetworkAccessManager 終了信号を送信するための長い遅延
QNAM を使用して、ftp プロトコルを使用してアップロードを処理します。プロセス全体は機能しますが、奇妙な動作があります。
これは私の方法です:
ファイルをアップロードすると、uploadProgress が発行されます。
x/x まで 0/x を出力します。その後、完了信号が送信されるまでに、おそらく最大 20 秒ほど長い時間がかかります。なぜこの遅延?
私は終了した信号を無視して、進行中のときに自分で信号を発信sent==total
しようとしまし たが、ファイルはもう一方の端で破損しています。(私はjpgのみを送信するので、実際には破損していません。結果のファイルは上半分のみのjpgです。大きな部分は灰色です。)
100% が実際にプロセスが完了したことを意味するプログレス バーをユーザーに提供したいと考えています。5 秒間アップロードしてから、100% で 20 秒間維持するのはあまり良くありません。
c++ - Mac - Qt を使用したネットワーク切断の検出
Qtを使用してファイルをダウンロードするアプリケーションを作成しています。コードスニペットは
正常に動作しますが、Mac の特定の状況下では、ダウンロードがエラー コールバックなしで永続的に停止します。それらの状況は
- LAN(インターネット)ケーブルを抜いて、20秒以内に素早く差し込む
- 10 ~ 20 秒以内に有線から WiFi に切り替え、その逆も可能
上記のシナリオでは、ファイルのダウンロードが停止します。ただし、この問題の頻度は 20 回に 1 回 (5%) です。これを軽減するために、TCP ソケットを使用してネットワークが稼働しているか停止しているかを確認し、30 秒ごとにポーリングする回避策のコードを作成しました。
ある程度はうまくいきました。ただし、これでも「LAN カードの抜き差し」が 30 秒以内に発生すると、ダウンロードが再びスタックします。したがって、この回避策では問題を完全に解決できませんでした。非常に短い間隔でのポーリングは、適切な解決策のようには見えません。間隔が短いと、競合状態が発生する可能性があります。
私は、途中で詰まったこのダウンロードを解決する方法を見つけるのにここで立ち往生しています。ネットワークがオフになったときにダウンロードを即座に通知する方法を考え出すのを手伝ってくれる人はいますか?
私が使用している Qt のバージョンは 5.3.1 で、Mac OS は 10.9 です。