Netty 5.X 官方指南翻译版3:深入研究接收到的数据

http://netty.io/wiki/user-guide-for-5.x.html#wiki-h3-7

 

既然我们已经写了第一个服务器代码,我们需要测试是否OK
最简单的方式就是使用telnet命令。
比如,你可以敲入  telnet localhost 8080 在命令行里。并且输入一些东西。
尽管如此,我们可以说服务器工作很好吗?我们不能知道因为这是一个忽略服务器。
你不会得到任何响应,为了证明这个代码可以工作,让我们修改服务器来打印接收到的数据。


我们已经知道channelRead()方法是当有数据来时被调用,
让我们增加一些代码。

@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
    ByteBuf in = (ByteBuf) msg;
    try {
        while (in.isReadable()) { // (1)
            System.out.print((char) in.readByte());
            System.out.flush();
        }
    } finally {
        ReferenceCountUtil.release(msg); // (2)
    }
}
这个无效的循环可以简化为: System.out.println(in.toString(io.netty.util.CharsetUtil.US_ASCII))
相应的,你可以使用in.release()!!!.
如果你再次调用telnet命令,你将看到服务器打印接收到的数据。
源码可以在io.netty.example.discard包里找到。

 

翻译 ok ok ok
理解 ok ok ok

你可能感兴趣的:(netty)