小説がなくても、私は説明しようとし、それが理にかなっていることを願っています.
シンプルな HTTPS 経由でサーバーへのデータ送信を処理するアプリがありますが、問題なくすべて正常に動作します。ただし、パケットが衛星電話経由で送信される場合、伝送の遅延は、地上回線の高速ネットワーク アクセスで処理される通常のミリ秒よりもはるかに長くなります。そのため、送信されるまったく同じパケットは、次の関数を使用すると、Windows API を介して自動的に分割されます。
DECLARE INTEGER InternetOpen IN WININET.DLL
DECLARE INTEGER InternetCloseHandle IN WININET.DLL
DECLARE INTEGER InternetConnect IN WININET.DLL
DECLARE INTEGER HttpOpenRequest IN WININET.DLL
DECLARE INTEGER InternetQueryOption IN WININET.DLL
DECLARE INTEGER InternetSetOption IN WININET.DLL
DECLARE INTEGER HttpSendRequest IN WININET.DLL
DECLARE INTEGER HttpQueryInfo IN WININET.DLL
DECLARE INTEGER InternetReadFile IN WININET.DLL
私は「パケット」を具体的に制御しているのではなく、リクエスト全体を作成して送信し、回答を得るだけです。
起こっているように見えるのはこれです。大量のデータで典型的なように、パケットは小さなチャンクに分割されています。ただし、衛星に到達するまでに、それらは正しい順序で再構成されていないため、最終目的地での受け入れは失敗します。
それで、今質問です...パケットが送信される頻度を遅くして、遅延の問題を防ぐためにWindowsに具体的に知らせる方法はありますか? 衛星システムにアクセスできないため、これが問題であることを証明することはできませんが、パケットを取得しているように見えますが、正しい順序で元に戻していません。
ありがとう。