从Mina.MessageReceived()读取字节流

时间:2013-10-29 08:54:51

标签: java apache-mina

@Override
public void messageReceived(NextFilter nextFilter, IoSession session, Object message) throws Exception
{
}

我需要将消息作为字节流读取。但它不保证收到完整的消息。我需要丢弃包含少于16个字节的消息。当整个字节长度达到16时,我需要解码并使用它们。并且在任何情况下,如果它用17个字节调用,那么我只需处理16个而将另一个处理为下一个周期。重置()和标记()可以帮助我。有什么方法可以让mina缓冲那个。或者我必须使用自己的缓冲区吗?

1 个答案:

答案 0 :(得分:0)

  1. 小于16,你可以设置IoBuffer的位置来丢弃缓冲区。
  2. 等于16,这是真的,所以你可以解码它。
  3. 大于16,你可以删除前16个字节进行解码,并将剩余字节保存到当前会话