2011-10-27 45 views
2

UDP経由でデータを送信するアプリがあります。 私は、最大/最適な送信バッファサイズを調べようとしています。 私は2kパッケージの送信に成功しましたが、大きなパケットが問題でした。 私はgetSendBufferSizeを使って送信バッファサイズを調べました。 110592バイトを返しました。 近くに何かを送信しようとすると、エラーは表示されませんが、データはサーバに送られます。Android - DatagramSocketの最大バッファサイズを送信

"許可され​​た"送信バッファサイズはどのように分かりますか?

ありがとうございました。

答えて

2

DatagramPacketはUDPベースのソケット上の単なるラッパーであるため、通常のUDPルールが適用されます。

完全なIPデータグラムの理論上の最大サイズは64キロバイトですが、576バイトしかルーティングされません。任意の所定のネットワークパス上で、最小送信単位が最小のリンクが実際の制限を決定します。 (1500バイト、以下のヘッダーは、一般的な最大であるが、周りの1400バイトにメッセージを制限するので、その最も安全があるでしょうどのように多くのヘッダを予測することは不可能である。)

参考:Java DatagramPacket (UDP) maximum send/recv buffer size

+0

参考URLありがとうございます – Amos

0

また、私はしましたこのエラーが発生した場合は、65535 - 28 = 65507バイトでなければなりません。これは、DatagramPacketがメソッドのパラメータ "buffer"サイズを送信するためです。

関連する問題