Netty ByteBuf 和 String 轉換


參考https://blog.csdn.net/o1101574955/article/details/81024102

參考http://youyu4.iteye.com/blog/2361959

 Netty中的消息傳遞,都必須以字節的形式,以ChannelBuffer為載體傳遞。

public String convertByteBufToString(ByteBuf buf) {
String str;
if(buf.hasArray()) { // 處理堆緩沖區
str = new String(buf.array(), buf.arrayOffset() + buf.readerIndex(), buf.readableBytes());
} else { // 處理直接緩沖區以及復合緩沖區
byte[] bytes = new byte[buf.readableBytes()];
buf.getBytes(buf.readerIndex(), bytes);
str = new String(bytes, 0, buf.readableBytes());
}
return str;
}
當需要通過ChannelHandlerContext發送String數據時,可以

ByteBuf in;
in.writeBytes("你收到了嗎".getBytes());


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM