gpt4 book ai didi

Android DatagramSocket 接收缓冲区大小

转载 作者:行者123 更新时间:2023-12-03 11:51:10 25 4
gpt4 key购买 nike

我正在尝试设置/增加数据报套接字的接收缓冲区大小。我想这样做,因为在位于同一本地网络上的 PC 和 Android 设备之间发送数据时我遇到了一些随机数据包丢失,我想测试增加缓冲区大小是否会对减少此 UDP 产生任何影响数据包丢失。我正在尝试使用以下代码设置缓冲区大小。

DatagramSocket socket = new DatagramSocket();
socket.setReceiveBufferSize(655360);

然后稍后(在我开始从套接字读取之前)我检查接收缓冲区大小,如下所示:
Log.i(TAG, "Size: " + socket.getReceiveBufferSize());

但是,日志消息始终显示缓冲区大小为 163840。
这段代码有什么问题?我是否应该以另一种方式设置接收缓冲区大小。

谢谢

最佳答案

The log message always displays a buffer size of 163840.



这就是平台给你的。

What is the problem with this code?



没有什么。您需要阅读 Javadoc。平台可能会向上或向下调整您提供的值。 "因为 SO_RCVBUF 是一个提示,所以想要验证缓冲区大小的应用程序应该调用 getReceiveBufferSize()."

您不需要 640k 的套接字接收缓冲区。数据包丢失主要发生在网络中,并且只有在您阅读缓慢时才会发生在目标上。

关于Android DatagramSocket 接收缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22778823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com