私の割り当てには、UDPサービスを使用して画像ファイルを送信することが含まれています。私の教授は、「交換されたデータメッセージには、送信側が受信側で重複してフィルタリングするために16ビットのメッセージシーケンス番号を含めるためのヘッダー部分が必要です。これどうやってするの?誰も私を助けることができます。その緊急のpllをUDPクライアント/サーバ....重複をフィルタリングするための16ビットのメッセージシーケンス番号が含まれています
1
A
答えて
3
私はあなたのUDPパケットを作成すると仮定、あなたは、データを生成するためにByteArrayOutputStreamを使用しています。その場合は、そのByteArrayOutputStreamの上にDataOutputStreamをラップし、画像データをストリームに書き込む前にwriteInt(somesequenceNumber)を呼び出します。
受信側では、逆の処理を行い、ByteArrayInputStreamを中心にDataInputStreamをラップし、readInt()を呼び出してシーケンス番号を取得します。そこから、このパケットを既に受信しているかどうかを確認できます。
何か
のような書き込み側
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeInt(sequenceNumber++);
dos.writeInt(imageDataLength);
dos.write(imageData);
dos.flush();
byte[] udpPacketBytes = baos.toByteArray();
読むサイドseenSequenceNumbersは、16ビットの値についていくつかの設定
+0
私はその小さな例を見せてくれますか? –
1
である私はDataOutputStream.writeShortを(使用し
ByteArrayInputStream bais = new ByteArrayInputStream(udpPacketBytes);
DataInputStream dis = new DataInputStream(bais);
int sequenceNumber = dis.readInt();
if (seenSequenceNumbers.add(Integer.valueOf(sequenceNumber)))
{
int imageLength = dis.readInt();
byte[] imageData = new byte[imageLength];
dis.read(imageData);
}
)とDataInputSTream readShort()/ readUnsignedShort()です。 writeInt()とreadInt()は32ビット値用です。重複を避けたい場合は、いずれの場合でも32ビット値を使用する方がよいでしょう。 ;)
関連する問題
- 1. なぜVByNetでは負のSByte番号が16ビットですか?
- 2. ビジュアルパラダイムUMLシーケンス図長さ(メッセージシーケンス番号)
- 3. 複数のUDPシンクを持つGStreamerパイプライン(画像が含まれています)
- 4. 含まれている要素が変更された場合、Java HashSetに重複が含まれます
- 5. NSMutableSetには重複が含まれています
- 6. INNER JOINの結果に重複したログインが含まれています
- 7. gitツリーに重複したファイルのエントリが含まれています
- 8. 自動番号フィールドに重複があります
- 9. Pandas.Dataframe.duplicated()に重複している行が含まれています
- 10. 連絡先:重複した電話番号の選択を削除します
- 11. 重複する番号を見つけてその番号の周波数を表示する方法
- 12. t-SQL行番号を使用しますが、重複行には同じ番号を使用
- 13. Java intの下位16ビットを符号付き16ビット値として取得する
- 14. Url.Actionポート番号を含まない
- 15. スマートカードの読み取り(8ビットまたは16ビットですか?)
- 16. ソースコードにSVNリビジョン番号を含める
- 17. MarkdownSharpにはクライアント/ javascriptビットが含まれていますか?
- 18. PCM 16ビット波からノイズをフィルタリングする最適なアルゴリズムは?
- 19. は複数が含まれているC#またはjqueryの
- 20. 重複した行がまだ追加されています
- 21. コンタクトリストに人(電話番号)が含まれているかどうかを確認するための受け入れ/受信方法はありますか?
- 22. SQL Serverで重複した自動番号が生成される
- 23. 以下が含まれています、私は複数のエントリが含まれているリストオブジェクトを持って
- 24. DontDestroyOnLoad()のために重複しています
- 25. C# - 8ビットまたは16ビットのグレースケール生のピクセルデータを変換する
- 26. フィルタリングされた配列が含まれている場合のng-show
- 27. Rの複数の列に重複した値を持つ行番号を特定しますか?
- 28. 長い番号の最初のビットを削除する - ファストウェイJAVA
- 29. debug_backtrace()に行番号が含まれないのはなぜですか?
- 30. 次の番号または現在の番号に対してmysqlが自動的にインクリメントされますか?
これまでに何を試みましたか? –
通常の方法でUDPを使ってイメージを転送することができました...これは私たちの追加作業でした.... –