Android - DatagramSocketの最大バッファサイズを送信する

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

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

ありがとう。

2

2 答え

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

完全なIPデータグラムの理論上の最大サイズは64キロバイトですが、576バイトしかルーティングされません。任意の所定のネットワークパス上で、最小送信単位が最小のリンクが実際の制限を決定します。 (1500バイト、ヘッダーは一般的な最大値ですが、いくつのヘッダーが存在するかを予測して、メッセージを約1400バイトに制限するのが最も安全です)。

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

2
追加された
参照URLをありがとう
追加された 著者 Amos,

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

0
追加された