繁体   English   中英

从Mina.MessageReceived()读取字节流

[英]Reading byte stream from Mina.MessageReceived()

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

我需要将消息读取为字节流。 但是,它不能保证已收到完整的消息。 我需要丢弃少于16个字节的消息。 当字节的总长度达到16时,我需要解码并使用它们。 无论如何,如果它调用了17个字节,那么我只需要处理16个字节,而将另一个留给下一个周期。 是reset()和mark()在这方面帮助我。 有什么办法可以要求Mina进行缓冲。 还是我必须使用自己的缓冲区?

  1. 小于16,您可以设置IoBuffer的位置以丢弃该缓冲区。
  2. 等于16,这是真的,因此您可以对其进行解码。
  3. 大于16,您可以删掉前16个字节进行解码,然后将其余字节保存到当前会话中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM