我有字节流,当我得到特定的标头时,我需要将这些字节形成一个帧。例子:
Header: ABC
Source: DFDFDFDF'ABC'IEJENFAREABCOEKRERIERE
如果检测到 ABC,则'IE'
字符串和'JEN'
字符串中的其余字节以及字符串中的其余字节会'FARE'
再次检测到 ABC,因此'OE'
在字符串中......同样必须处理我的字节流。
有什么有效的方法来处理它吗?
我有字节流,当我得到特定的标头时,我需要将这些字节形成一个帧。例子:
Header: ABC
Source: DFDFDFDF'ABC'IEJENFAREABCOEKRERIERE
如果检测到 ABC,则'IE'
字符串和'JEN'
字符串中的其余字节以及字符串中的其余字节会'FARE'
再次检测到 ABC,因此'OE'
在字符串中......同样必须处理我的字节流。
有什么有效的方法来处理它吗?
如果您有超过 1 个标头,我建议使用Finite State Machines。但是,如果只有一个,简单的模式匹配就足够了。
您所要做的就是从先前创建的帧开始存储字符。每当你读到一个字符时,更新你的状态。如果找到了标题的结尾,那么您就得到了框架。如果没有,您可以将字符附加到不完整的框架中。