@Override    public void channelRead(final ChannelHandlerContext ctx, Object msg) throws IOException {        ByteBuf byteBuf = (ByteBuf) msg;        ByteBuf byteBuf1 = Unpooled.copiedBuffer(byteBuf);        byte[] bytes = ByteBufUtil.getBytes(byteBuf1);        boolean flag = byteBuf1.readBoolean();        if (flag) {            int str_length1 = byteBuf1.readInt();            ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes, 5, str_length1);            byte[] new_bytes = new byte[str_length1];            while (inputStream.read(new_bytes) != -1) {                inputStream.close();                String plain = new String(new_bytes, CharsetUtil.UTF_8);                if (plain.equalsIgnoreCase("PLAIN")) {                    int aInt = byteBuf1.getInt(11);                    String sql = parseBytesToString(byteBuf1, 11, aInt);                    String[] split = sql.split("\u0000");                    if (split.length==2){                        String userName = split[0];                        String passWord = split[1];                        System.out.println("userName = "+ userName);                        System.out.println("passWord = "+ passWord);                    }                }            }        }        byteBuf1.resetReaderIndex();//        byte[] bytes = ByteBufUtil.getBytes(byteBuf1);        int size = byteBuf1.readInt();        if (size>0 && byteBuf1.capacity()>=size){            short unused = byteBuf1.readShort();            short message_type = byteBuf1.readShort();            int str_length = byteBuf1.readInt();            ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes,12,str_length);            byte[] new_bytes = new byte[str_length];            while (inputStream.read(new_bytes)!=-1){                inputStream.close();                String statement = new String(new_bytes, CharsetUtil.UTF_8);//                System.out.println(statement);                if (statement.equalsIgnoreCase("ExecuteStatement")){                    byte aByte = byteBuf1.getByte(95);                    String sql = parseBytesToString(byteBuf1, 84, aByte);                    System.out.println("sql ==== > " + sql);                }            }        }        if (outboundChannel.isActive()) {            outboundChannel.writeAndFlush(msg).addListener(new ChannelFutureListener() {                @Override                public void operationComplete(ChannelFuture future) {                    if (future.isSuccess()) {                        // was able to flush out data, start to read the next chunk                        ctx.channel().read();                    } else {                        future.channel().close();                    }                }            });        }    }