基于头部的网络帧解码

时间:2014-09-04 07:03:14

标签: java netty hornetq

我使用的是netty 3.4.5版本。当我从网络接收数据包时,帧的长度基于标头。即

header1 - >长度为70字节的数据。

header2 - >长度为140字节的数据。

header3 - >长度为28个字节的数据。

我想在netty中使用 lengthbasedframedecoder 。请建议我如何做到这一点。 如果还有其他方法可以建议我。

谢谢

1 个答案:

答案 0 :(得分:1)

如果header1header2header3的长度相同,则可以通过覆盖getUnadjustedFrameLength中的LengthFieldBasedFrameDecoder来实现此目的。

switch(buf.getUnsignedInt) { //get header here
  case header1 : return 70; 
  case header2: return 140;
  case header3: return 28;
}