- 浏览: 3269 次
- 性别:
- 来自: 深圳
文章列表
里面的重点是doDecode的返回值
这个方法的返回值是重点:
* 1、当内容刚好时,返回false,告知父类接收下一批内容
* 2、内容不够时需要下一批发过来的内容,此时返回false,这样父类 CumulativeProtocolDecoder
* 会将内容放进IoSession中,等下次来数据后就自动拼装再交给本类的doDecode
* 3、当内容多时,返回true,因为需要再将本批数据进行读取,父类会将剩余的数据再次推送本类的doDecode
public boolean doDecode(IoSessio ...
mina粘包、多包和少包的解决方法 (转)
原文地址:http://freemart.iteye.com/blog/836654
使用过mina的同学应该都遇到到过,在解码时少包、多包的问题,查阅了很多资料还是迷迷糊糊的,经过
不懈努力,终于解决了。原来解决方法是那样的简单。废话少说,请看列子。
另外建了一个交流群:19702042,大家可以在线交流
问题:我发送的是xml字符串数据,在发送数据后,接收方在解码的时候可能接到1条,也可能是多条,还
可能是半条或一条半,解决方法就是使用CumulativeProtocolDecoder
首先,在编码的 ...
使用mina传输超过2k以上的数据时(采用tcp方式,如果是UDP方式,好像一次传输的数据不能超过256字节,如果超过mina不会分批次发送,而tcp方式会分批次发送),mina会自动将这些数据分成多次发送。由于是分批次发送数据,所有客服端在接受数据时,需要等所有的数据接受完之后才能解码,否则无法解码,或者只能读取到部分文件。
以下是一个发送、接受大字节数组的主要代码
服务端向客服端发送字节数组
服务端代码:
编码器:
public class ImageDataEncoder extends ProtocolEncoderAdapter {
@Override
public void en ...