Netty发送消息无法接收问题

Netty发送消息无法接收问题

原因:
参考官网案例代码,继承ChannelHandlerAdapter类,则writeAndFlush只接受ByteBuf对象,因此需要将需要发送的数据转换成ByteBuf
在这里插入图片描述

Java各种数据类型转ByteBuf

  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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值