有件事困扰了我多年。我使用很多蓝牙和最近的 wifi 流 (spp)。这些流总是连接到特定的设备,并且通过简单的字节命令进行通信。
我自己编程的一些设备(他们的微控制器)在那里我必须始终检查线上的信号是否是我期望的,发送并检查 crcs。
不知何故,我想在我的智能手机上做同样的事情,因为我使用“readByte”访问我的流并逐字节读取,我总是想知道是否真的有可能 a) 消息中的一个字节可能丢失 b) 消息混合到达或“乱序”
我不知道底层硬件做了多少。它是否使用 crc 检查每条消息并在消息损坏时再次请求该消息?还是它盲目地将每个字节传递给我的“readByte”方法?
如果设备发送消息 a 然后 b,接收器是否有可能在 a 之前接收 b 并在 a 之前传递我的代码 b 或者甚至像拉链一样混合字节并给我 a[0] 然后 b [0] 然后 a [1] 等等。
我应该对这些流有多少信任?一些澄清将不胜感激