程序猿之路

Netty源码分析(二)Channel

2017-05-23  本文已影响32人  三斤牛肉

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。

上一篇下一篇

猜你喜欢

热点阅读