本文分析内容如下
- Channel主要接口分析
- AbstractChannel分析
- AbstractNioChannel分析
- AbstractNioByteChannel分析
- AbstractNioMessageChannel 分析
- NioSocketChannel分析
- AbstractNioMessageServerChannel分析
- NioServerSocketChannel分析
netty Channel 类图
Channel主要接口分析
io.netty.channel.Channel 接口方法分析
与jdk中定义Chanel要干的大致相同
- bind()绑定系列方法。
- connect()连接系列方法。
- read(),write()读写系列方法。
- accept() 接受连接方法
io.netty.channel.ServerChannel 接口方法分析
只有一个方法,返回childGroup
io.netty.channel.socket.ServerSocketChannel接口方法分析
获取地址和配置
AbstractChannel分析
AbstractChannel{
//主要属性如下
private final Unsafe unsafe;// 主要功能实现
private final DefaultChannelPipeline pipeline;// 事件执行
// netty Future实现,异步执行结果控制
private final ChannelFuture succeededFuture = new SucceededChannelFuture(this, null);
//..........省略代码.........
// 执行select(), 更新selectKeys.
private final EventLoop eventLoop;
//..........省略代码.........
}
主要构造方法
创建unsafe,pipeline,保存父Channel,保存parentGroup 中 的eventLoop
protected AbstractChannel(Channel parent, Ev