您的当前位置:首页正文

Netty源码分析(二)Channel

来源:华拓网

Channel是Netty通讯的核心载体。
它包含了几个重要组件Unsafe,DefaultChannelPipeline
其中Unsafe具体处理IO相关操作
DefaultChannelPipeline负责整个逻辑处理。
Netty对于不同协议,不同底层实现都有不同的实现。
这里我们找一个最常用的NioServerSocketChannel来梳理类继承结构。

image.png

找几块代码:

@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。