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;
    }
}

岁月峥嵘走过
34 声望2 粉丝