import io.netty.buffer.ByteBuf;import io.netty.buffer.ByteBufAllocator;import java.nio.charset.StandardCharsets;import static io.netty.buffer.ByteBufUtil.appendPrettyHexDump;import static io.netty.util.internal.StringUtil.NEWLINE;public class MyByteUtils {    public static void log(ByteBuf buffer) {        int length = buffer.readableBytes();        int rows = length / 16 + (length % 15 == 0 ? 0 : 1) + 4;        StringBuilder buf = new StringBuilder(rows * 80 * 2)                .append("read index:").append(buffer.readerIndex())                .append(" write index:").append(buffer.writerIndex())                .append(" capacity:").append(buffer.capacity())                .append(NEWLINE);        appendPrettyHexDump(buf, buffer);        System.out.println(buf.toString());    }    public static ByteBuf createByteBuf(String userName,String passWord) {        String format = String.format("%s\u0000%s", userName, passWord);        ByteBuf byteBuf1 = ByteBufAllocator.DEFAULT.buffer(16 + format.length());        byteBuf1.writeBoolean(true);        byteBuf1.writeInt(5);        byteBuf1.writeBytes("PLAIN".getBytes(StandardCharsets.UTF_8));        byteBuf1.writeByte(5);        byteBuf1.writeInt(format.length() + 1);        byteBuf1.writeBytes("\u0000".getBytes(StandardCharsets.UTF_8));        byteBuf1.writeBytes(format.getBytes(StandardCharsets.UTF_8));        MyByteUtils.log(byteBuf1);        return byteBuf1;    }}