我正在尝试使用ByteBuf通过netty发送字符串。
首先,我将字符串转换为这样的字节数组:
byteBuf.writeInt(this.serverName.length());
byteBuf.writeInt(this.ipAdress.length());
byteBuf.writeBytes(this.serverName.getBytes(StandardCharsets.UTF_8));
byteBuf.writeBytes(this.ipAdress.getBytes(StandardCharsets.UTF_8));
这很好用,但是我不知道如何读取字节以将它们转换回字符串?
我尝试过这样的事情:
int snLen = byteBuf.readInt();
int ipLen = byteBuf.readInt();
byte[] bytes = new byte[byteBuf.readableBytes()];
System.out.println(byteBuf.readBytes(bytes).readByte());
this.ipAdress = "";
必须有一些东西可以恢复字节数。您可以从字符串发送字节,但不能在最后返回字节?似乎有一种解决方法,但是我不知道该怎么做。
希望您的任何人都能帮助我。
提前致谢! :)
最佳答案
在netty 4.1中,您可以使用:
byteBuf.writeCharSequence(...)
byteBuf.readCharSequence(...)