Mina传输大数组,多路解码,粘包问题的处理
最近刚刚在做 Java 通信方面,初次接触mina,边根据网上查找的资料,结合自身的实际问题,作出了如下整理,希望能给类似问题的朋友帮助。 我的实际情况: 1,传递的业务数据种类很多,这就决定了我们要用多路解码器,MINA的中文手册提供的是DemuxingProtocolCodecFactory; 2,,有的数据长度达到8K,网上有资料说Mina在传输数据超过2K的情况下,会分片传输,因此要考虑如何来接收; 3,若数据发送很快,或者网络状况不佳,很容易出现粘包的情况,这也是要解决的问题。 1)针对多路解码: 编码器: 将编码器继承MessageEncoder<T>,T是你编码的对象的类,此中我是要编码Requstwork类;其中GetBytes()是我自己定义的将对象的数据组成字节数组的函数; public class RequstNetworkEncoder implements MessageEncoder<RequstNetwork>{ @Override public void encode(IoSession ioSession, RequstNetwork requstNetwork, ProtocolEncoderOutput out) throws Exception { if (requstNetwork != null) { byte[] bytes1 =