public class MServerProtocolDecoder extends CumulativeProtocolDecoder { /** * Implement this method to consume the specified cumulative buffer and * decode its content into message(s). * * @param in the cumulative buffer * @return true if and only if there's more to decode in the buffer * and you want to have doDecode method invoked again. * Return false if remaining data is not enough to decode, * then this method will be invoked again when more data is cumulated. * @throws Exception if cannot decode in. * * */ @Override protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { //now let's decode message to the IoBuffer; // mark <= position <= limit <= capacity // if remaining data is not enough to decode (value:MServerConfig.lengthFieldLength); if (in.remaining()< MServerConfig.lengthFieldLength){ return false; } int pack_length=in.getUnsignedShort();//get pack length ,increments the position by two //the dataLength is not enough to decode if (in.remaining()