Android蓝牙块大小
作者:互联网
我遇到蓝牙插座的奇怪行为(以我的观点),我想知道是否有人可以向我澄清一下.
情况:
我有两个通过蓝牙插槽连接在一起的Android应用程序:
>第一个在输出流上进行简单的write(byte []消息).
>第二个对输入流进行简单的read(byte []缓冲区).
在阅读器端,我使用1024个字节的缓冲区.发送方发送的消息比接收方缓冲区的大小大一点:1024 108字节(总是相同的消息).
现在,行为如下:
在阅读器应用程序上,我通常会收到第一个1024字节的块,该块填满了缓冲区(如预期的那样),然后是第二个108字节的块.
但是实际上(通常是40%的时间)我收到第一个1008字节的块,然后收到第二个124字节的块.
我真的很想了解这一点,因为我很想念一个重要的蓝牙概念.起初,我想将读取的字节数与缓冲区大小进行比较,以了解是否已接收到整个消息,但是此实验表明这可能不是一个好主意.
有人可以向我解释这种行为吗?
提前致谢.
解决方法:
作为记录,我现在使用Google Guava方法对流进行读/写,并且一切正常.
标签:android-bluetooth,android 来源: https://codeday.me/bug/20191122/2063249.html