Android的DatagramSocket的接收缓冲区大小(Android DatagramSoc

2019-10-19 17:29发布

我想设置/增加一个数据报套接字的接收缓冲区大小。 我想做到这一点,因为我送的位于同一本地网络上的PC和Android设备之间的数据的时候,我想测试,如果增加缓冲区大小会有任何影响降低此UDP遇到了一些随机数据包丢失数据包丢失。 我想用下面的代码来设置缓冲区的大小。

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

再后来就(开始之前,我从套接字读取),我检查接收缓冲区大小,如下所示:

Log.i(TAG, "Size: " + socket.getReceiveBufferSize());

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

谢谢

Answer 1:

日志消息始终显示的163840的缓冲器大小。

这就是这个平台给了你。

这有什么代码问题?

没有。 你需要阅读的Javadoc。 该平台可以调整你提供向上或向下的价值。 “由于SO_RCVBUF是一种提示,想要的应用程序,以验证哪些大小缓冲区设置到应该调用getReceiveBufferSize().

你并不需要一个套接字接收的640K缓存。 数据包丢失发生的网络主要集中在,只有在目标,如果你正在阅读缓慢。



文章来源: Android DatagramSocket receive buffer size