15

ストリーミング サーバーとフラッシュ クライアント間の Java インターフェイスを開発しています。両方のプロセスがローカルで実行されている場合でも、UDP データグラムが順不同でインターフェイスに到達する可能性があることに気付きました。

それは正常ですか?データグラムはルーターやネットワーク デバイスを通過する必要がないので、それは起こらないはずだと思いました。

4

4 に答える 4

7

これは、オペレーティング システムに依存します。オペレーティング システムの指定に失敗しましたが、とにかく重要ではありません。移植性を維持するには、データグラムソケットが順不同のデータを受信することを常に想定する必要があります。

于 2010-03-28T17:56:40.937 に答える
6

実際には、UDP パケットが localhost 上の localhost から送信されたとしても、順序付けと受信の保証はありません。プロトコルの仕様がそれについて何も暗示していないからです。

それらを仮定することはできないため、TCP を使用するか、プログラムで処理されるシーケンス番号を使用して並べ替えを処理するかを選択する必要があります。

于 2010-03-28T18:13:21.833 に答える
1

上記の投稿者がすべて言っているように、UDP はシーケンスを保持するように指定されていませんが、中間ルーターがない場合は、コードにバグがあると思われます。

于 2010-03-29T07:10:24.770 に答える
1

localhost を実行していますが、実際の展開では UDP データグラムが順不同であることが予想されます。

順番にそれらが必要な場合は、TCP を試してください。

于 2010-03-28T18:09:11.437 に答える