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