老哥们想问问串口通讯怎么判断是不是头节点阿?就比如我第一次发的包有头,但是第二个包的头被黏在第一个包的后面该咋办
就比如这样的模拟数据
您的每一个用心回答,都会让这个世界变得更美好一些!
android串口之前接手过,时间有些久,可以帮你找找,
最近用C语言也写了个tcp黏包的工具库,https://github.com/OYXS520/C-Byte-Process
你可以参考下库中的check_bytes方法
思路就是
定义一个队列,专门用于存储接收的字节数组,每接手一次数据就判断一下队列是否是一个完整的包,每当有新到的字节都拼接队尾。
然后从队头开始检查包头,检查到包头就获取后面的数据位,对比数据位显示的数据大小是否一致(判断后面的是否是包尾)。是就出队。不是就抛弃。
android串口之前接手过,时间有些久,可以帮你找找,
最近用C语言也写了个tcp黏包的工具库,https://github.com/OYXS520/C-Byte-Process
你可以参考下库中的check_bytes方法
思路就是
定义一个队列,专门用于存储接收的字节数组,每接手一次数据就判断一下队列是否是一个完整的包,每当有新到的字节都拼接队尾。
然后从队头开始检查包头,检查到包头就获取后面的数据位,对比数据位显示的数据大小是否一致(判断后面的是否是包尾)。是就出队。不是就抛弃。