Netty 5.X 官方指南翻译版4

本文将指导你如何利用Netty框架实现ECHO协议,重点在于将接收到的数据返回给客户端,而不仅仅是打印到控制台。通过修改channelRead()方法,你可以轻松地实现这一功能,使服务器能够响应客户端请求并返回相同的数据。

写一个回应服务器
到目前为止,我们已经消耗了数据没有发出回应。
一个服务器,尽管如此,通常假设为对一个请求作出响应。
让我们学习如何写一个响应消息给客户端通过实现一个ECHO协议。
任何接收到的数据将被发回。


这仅仅的区别就是我们已经实现了发回接收到的数据而不是打印它到控制台上。
因此,只需要再次修改channelRead()方法就行了。

    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) {
        ctx.write(msg); // (1)
        ctx.flush(); // (2)
    }
一个ChannelHandlerContext对象提供了各种操作(让你来触发各种IO事件和操作。)
这里,我们触发了write(Object)来逐字逐句写入接收到的消息。
注意:我们没有释放接收到的消息不像之前。
这是因为netty为我们释放了当它被写出到wire时。


ctx.write(Object) 没有让消息写出到wire, 只是做了内部的缓冲,通过ctx.flush()才写到wire里。
相应的,你可以调用ctx.writeAndFlush(msg) 来实现简洁性.
如果你运行telnet命令行,你将看到服务器返回你发送的内容。

翻译

okokok
理解okokok

转载于:https://my.oschina.net/qiangzigege/blog/389037

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值