用法详见例子
因为通信的时候,接收到的数据是一个连续的数据流。我们需要从中获取到一个完整的数据包。
头:01 02 尾:04 06(以后的例子中的头和尾都用01 02 和 04 06) 一个完整的数据包 01 02 xx xx … xx 04 06
如果对方只发送了包头,然后一直发送垃圾数据,这些数据中不包含包尾。我们的程序无法丢弃这些垃圾数据,这会导致占用内存越来越大,最终导致程序崩溃
一个完整的数据包 xx xx … xx 04 06
如果对方一直发送垃圾数据,这些数据中不包含包尾。我们的程序无法丢弃这些垃圾数据,这会导致占用内存越来越大,最终导致程序崩溃
一个完整的数据包 01 02 03 05 07 其中01 02 是包头(TCP可以不带包头),03代表长度(也可以传入指定长度)。比如协议规定,除包头以外,还有长度为3的数据,本例中是03 05 07。
如果对方一直发送垃圾数据,这些数据中不包含包头。我们的程序可以移除这些无效数据,这样不会使内存占用变大。所以推荐使用这种分割数据包的方式
这种方式用于串口通信。不会产生垃圾数据占用内存的问题。一定时间内(比如Modbus是200ms)收到的数据作为一个完整的数据包