複数のクライアントにブロードキャストしたいので、この例を実装しています。ソケットを使用して別のオブジェクト(シリアル化されている)を送信しようとすると、ソケット(例では)がオブジェクトを送信できないというエラーが発生します。データグラムソケットもオブジェクトを送受信できませんか?
1442 次
2 に答える
4
一般的にはありません。データグラムパケットは一般に比較的小さいです-オブジェクトをでラップされたものにシリアル化してから、後でバイト配列を送信しようとすることができます-しかし、それが非常に速く大きくなりすぎることに気付くかもしれません。ByteArrayOutputStream
ObjectOutputStream
Protocol Buffersなどのより効率的なシリアル化形式を使用すると、単一のパケットでより多くの情報を取得できる可能性がありますが、通常は、単一のパケットではなくストリームにシリアル化する必要があります...ストリームベースのプロトコルをデータグラムベースのプロトコルよりも優先させるには、信頼性が必要になるとすぐに、TCPをかなり迅速に使用できるようになります。
あなたがやろうとしていることの詳細(信頼性の制約を含む-パケットが失われた場合の深刻さを含む)を私たちに教えていただければ、私たちはあなたをもっと助けることができるかもしれません。
于 2011-10-02T17:20:31.357 に答える
1
最善の策は、TCPまたはjGroupsなどの別のライブラリを使用することです。
JGroupsは、信頼性の高いマルチキャスト通信のためのツールキットです。
于 2011-10-02T17:24:18.000 に答える