【发布时间】:2016-11-09 12:56:46
【问题描述】:
我有一个 Netty 客户端和一个 Netty 服务器,在遵循主要教程之后,为了拥有一个 EchoClient / 服务器,我想制作它,以便我的客户端在他第一次连接到我的服务器时向它发送一条消息。
这里是我的ClientClassHandler 的方法,应该解决这个问题:
private final ByteBuf firstMessage;
public ClientClassHandler() {
firstMessage = Unpooled.buffer(ClientClass.SIZE);
for (int i = 0; i < firstMessage.capacity(); i++) {
firstMessage.writeByte((byte) i);
}
}
@Override
public void channelActive(ChannelHandlerContext ctx) {
System.out.println("Channel is active.");
ctx.writeAndFlush(firstMessage);
}
但正如您所见,本教程使用 ByteBuf,而使用 String 似乎不起作用!
这是我在ServerClassHandler 的方法中显示收到的消息的方式:
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
System.out.println(msg);
}
但是当为firstMessage 使用String 并在构造函数中初始化并发送它时,我的服务器不显示任何内容!
我不明白什么?
【问题讨论】: