我有一个通过UDP发送数据的应用。 我试图找出最大/最佳发送缓冲区大小是多少。 我已成功发送2k包,但更大的数据包是一个问题。 我尝试使用getSendBufferSize来查看发送缓冲区大小是多少。它返回110592字节。 当我尝试发送任何接近它的东西时,我没有收到错误,但数据需要到达服务器。
我如何知道“允许的”发送缓冲区大小是什么?
感谢。
答案 0 :(得分:2)
DatagramPacket只是基于UDP的套接字的包装器,因此适用通常的UDP规则。
64千字节是完整IP数据报的理论最大大小,但保证仅路由576个字节。在任何给定的网络路径上,具有最小最大传输单元的链路将确定实际限制。 (1500字节,更少的标头是常见的最大值,但是不可能预测会有多少标头,因此最安全地将消息限制在大约1400字节。)
答案 1 :(得分:0)
我也遇到过这个错误,它应该是65535 - 28 = 65507字节,对于DatagramPacket发送方法的参数“缓冲区”大小。