netty学习 -- Channel
Channel
channel的主要作用
- close()关闭channel
- closeFuture()来处理channel的关闭
- sync()方法等待异步就结束
- addListener()方法增加回调操作
- pipeline()方法添加处理器
- write()方法写入
- writeAndFlush()方法将数据写入并刷出
write()
HelloServer 服务端
@Slf4j(topic = "w.Test1")
public class HelloServer {
public static void main(String[] args) {
// 创建启动器
new ServerBootstrap()
// 创建EventLoop事件监听处理组
.group(new NioEventLoopGroup())
// 设置ServerSocketChannel的实现NioServerSocketChannel
.channel(NioServerSocketChannel.class)
// 设置处理器
.childHandler(new ChannelInitializer<NioSocketChannel>() {
@Override
protected void initChannel(NioSocketChannel ch) throws Exception {
// 添加处理工序 处理stringBuf为字符串
ch.pipeline().addLast(new StringDecoder());
// 自定义处理器
ch.pipeline().addLast(new ChannelInboundHandlerAdapter() {
// 监听读时间
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
// 打印上一步转换好的字符串
log.debug((String) msg);
}
});
}
}).bind(8080); // 绑定的监听端口
}
}
HelloClient 客户端
@Slf4j(topic = "w.Test1")
public class HelloClient {
public static void