mina框架中如何处理大于缓存大小的数据
1个回答
2014-11-06 · 知道合伙人数码行家
关注
展开全部
如果你接收的消息是以\r\n结尾的话,那么可以使用mina自带的TextLine debode。如果不是的话,那么就得你自己写一个decode,这要求你接收的消息中,有能够明确的标识一条完整消息的消息头或消息尾。或者有当前接收的消息的长度,或者校验和这类的字段,以便你能够区分出是一条完整的消息。写这个decode,有点复杂,需要考虑的情况比较多,最好对这个decode做充分的单元测试。如果在decode中解析消息时出现问题,最好把链接断开,因为出现问题了,有可能你读进来的内容已经乱掉了,后面的会全都乱掉。比如,你读进来四个字节,这个四个字节应该代表的是消息长度,但你读进来的这四个字节其实是消息内容,那么在你将其转换位长度的时候,就会抛异常。这时候,顺序已经乱了,目前我能想到的解决方法,就是断开连接,然后自动重连。当然,如果你写的decode没有问题,就不存在这种情况了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询