我使用byte[]接收串口消息,消息协议是以0x64开始,0x16结束(注:消息体中含有一个为0x64字节),长度不定。请问我应该用什么方法来区分每个消息体。
前提条件:1、每次接收有可能是1个消息体,也可能是多个。
2、接收可能含有不完成的消息体,如可能是1个半,或2个半。
3、把上次解析剩下的不完整消息体和下次接收到的消息体比较,判断是否能合着完整消息。
4、效率越高越好。
不知道我说明白了吗!!
前提条件:1、每次接收有可能是1个消息体,也可能是多个。
2、接收可能含有不完成的消息体,如可能是1个半,或2个半。
3、把上次解析剩下的不完整消息体和下次接收到的消息体比较,判断是否能合着完整消息。
4、效率越高越好。
不知道我说明白了吗!!
这个MessageStream类相当于一个接受消息的缓冲区
当然,前提是你得将消息格式化 像 消息=消息头+消息长度(byte单位)+具体内容,像你说的“消息协议是以0x64开始,0x16结束”也可以具体做法,自己揣摩吧。