1、EchoServerHandler
package com.zhang.nettytest2.demo3;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.util.CharsetUtil;
@ChannelHandler.Sharable
public class EchoServerHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
ByteBuf in=(ByteBuf)msg;
System.out.println("Server received:"+in.toString(CharsetUtil.UTF_8));
ctx.write(in);
}
@Override
public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
本文深入探讨了Netty中的EchoServerHandler和EchoServer,关注write与writeAndFlush的区别。Netty的write操作实际上是将数据存入ChannelOutboundBuffer缓冲区。此外,还介绍了addListener和ChannelFutureListener在处理I/O事件中的作用。对于为何使用Unpooled.EMPTY_BUFFER触发缓冲区内容写出,文章提出了疑问并等待进一步解析。
订阅专栏 解锁全文
9349

被折叠的 条评论
为什么被折叠?



