我有一个串行通信协议,我一直在接收消息,消息几乎同时到达一个数组中,我想使用确定消息开始[102][102]的字符和指示消息结束[50][101]的字符将此数组分为几个其他数组,你怎么能这么做?
我试了以下方法:
byte[] buffer = Arrays.copyOfRange(dados,0,16);
byte[] buffer1 = Arrays.copyOfRange(dados,16,32);
byte[] buffer2 = Arrays.copyOfRange(dados, 32, 48);
但是,如果我停止接收来自任何设备的消息,则主数组将更改,从而生成异常
1条答案
按热度按时间j13ufse21#
获取帧的开始和结束位置。你可以用这篇文章得到它。字节[]数组模式搜索
实现如下:
然后通过迭代开始对inputbytes进行切片。
当您在开始=>搜索结束列表中的下一个可见结束时。
然后你可以切薄片