Netty源码分析(二)Channel
2017-05-23 本文已影响32人
三斤牛肉
Channel是Netty通讯的核心载体。
它包含了几个重要组件Unsafe,DefaultChannelPipeline
其中Unsafe具体处理IO相关操作
DefaultChannelPipeline负责整个逻辑处理。
Netty对于不同协议,不同底层实现都有不同的实现。
这里我们找一个最常用的NioServerSocketChannel来梳理类继承结构。
找几块代码:
@Override
public ChannelFuture bind(SocketAddress localAddress, ChannelPromise promise) {
return pipeline.bind(localAddress, promise);
}
@Override
public ChannelFuture connect(SocketAddress remoteAddress, ChannelPromise promise) {
return pipeline.connect(remoteAddress, promise);
}
@Override
public ChannelFuture write(Object msg) {
return pipeline.write(msg);
}
@Override
public Channel read() {
pipeline.read();
return this;
}
可以看到大部分的功能都在Pipeline中实现,下一节具体分析下Pipeline。