【问题标题】:Android - send DatagramSocket max buffer sizeAndroid - 发送 DatagramSocket 最大缓冲区大小
【发布时间】:2011-12-16 15:24:44
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: android size buffer send datagram


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-20
        • 1970-01-01
        • 1970-01-01
        • 2012-04-16
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        相关资源
        最近更新 更多