Android - 发送DatagramSocket最大缓冲区大小

时间:2011-10-27 15:44:36

标签: android size buffer send datagram

我有一个通过UDP发送数据的应用。 我试图找出最大/最佳发送缓冲区大小是多少。 我已成功发送2k包,但更大的数据包是一个问题。 我尝试使用getSendBufferSize来查看发送缓冲区大小是多少。它返回110592字节。 当我尝试发送任何接近它的东西时,我没有收到错误,但数据需要到达服务器。

我如何知道“允许的”发送缓冲区大小是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

DatagramPacket只是基于UDP的套接字的包装器,因此适用通常的UDP规则。

64千字节是完整IP数据报的理论最大大小,但保证仅路由576个字节。在任何给定的网络路径上,具有最小最大传输单元的链路将确定实际限制。 (1500字节,更少的标头是常见的最大值,但是不可能预测会有多少标头,因此最安全地将消息限制在大约1400字节。)

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

答案 1 :(得分:0)

我也遇到过这个错误,它应该是65535 - 28 = 65507字节,对于DatagramPacket发送方法的参数“缓冲区”大小。