Netty发送消息无法接收问题

Netty发送消息无法接收问题

原因:
参考官网案例代码,继承ChannelHandlerAdapter类,则writeAndFlush只接受ByteBuf对象,因此需要将需要发送的数据转换成ByteBuf
Netty官网案例代码

其他

  1. 字符串转ByteBuf
String str = "haha";
ByteBuf byteBuf = Unpooled.wrappedBuffer(str.getBytes());
  1. 数字转ByteBuf
int number = 123456;
// 创建一个具有足够容量的ByteBuf
ByteBuf byteBuf = Unpooled.buffer(Integer.BYTES); // 这里假设我们要处理的是一个32位整数,如果要处理其他大小的整数,需要调整创建ByteBuf的容量,并相应地使用writeShort、writeLong等方法
// 写入整数到ByteBuf
byteBuf.writeInt(number);
  1. 对象转ByteBuf
//对象要求实现Serializable接口
Date object = new Date();
try (ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(bos)) {
    oos.writeObject(object);
    byte[] bytes = bos.toByteArray();
    ByteBuf byteBuf = Unpooled.buffer(bytes.length);
    byteBuf.writeBytes(bytes);
} catch (IOException e) {
    e.printStackTrace();
}
  1. 布尔转ByteBuf
boolean bool = true;
ByteBuf byteBuf = Unpooled.buffer(1);
byteBuf.writeByte(bool ? (byte) 1 : (byte) 0);
posted @ 2024-05-10 09:43  NicolasFive  阅读(331)  评论(0)    收藏  举报