![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
文章平均质量分 70
asialee029
这个作者很懒,什么都没留下…
展开
-
netty学习之ChannelBuffer
[size=large][color=blue] 这个类的学习其实我感觉看ChannelBuffer的javadoc就能明白大概,也就是网上说的有readerIndex和writerIndex,以及和这两个相关的markedReaderIndex和markedWriterIndex,我这里重点看一下discardReadBytes这个函数的实现吧:[/color][/size]...原创 2012-11-21 19:09:41 · 255 阅读 · 0 评论 -
netty源码分析之FrameDecoder(LengthFieldBasedFrameDecoder)
我们接下来看一个也是比较重要的的解码器LengthFieldBasedFrameDecoder,这个和DelimiterBasedFrameDecoder比起来没有那么难理解,所以我们简单的看一下。 和之前一样,我们先来看一下局部变量。 private final int maxFrameLength; private final in...原创 2013-02-02 21:44:53 · 399 阅读 · 0 评论 -
netty源码分析之FrameDecoder(DelimiterBasedFrameDecoder)
前面我们分析了FrameDecoder的实现,我们接下来看看它的子类实现吧! 我们首先来看DelimiterBasedFrameDecoder的实现,个人认为这个类实现的真的很牛,有些变量的含义作者没有增加注释,有时候可能不容易猜到意图。首先我们来看一下这个类的成员变量: private final ChannelBuffer[] delim...原创 2013-02-02 20:05:55 · 454 阅读 · 0 评论 -
netty源码分析之FrameDecoder
我们接下来就看和业务息息相关的解码器,首先我们来看FrameDecoder,这个东西应该是所有的解码器都会实现这个,所以我们来重点看一下。 FrameDecoder产生的根源就是TCP/IP数据包的传输方式决定的,包在传输的过程中会分片和重组,正如javadoc里面所说的: 客户端在发送的时候的序列如下:+-----+-----+-----...原创 2013-01-27 12:57:45 · 318 阅读 · 0 评论 -
netty源码分析之ChannelFuture
在netty里面所有的nio相关的操作都是异步的,返回一个channelfuture对象,这个里面可以添加一些listener,然后再相关操作完成后进行触发,最主要的是通过这个对象可以查询相关操作的执行情况,是成功了,还是失败了。 我们来就来看看DefaultChannelFuture的实现就好,我们应该能猜到netty的思想,里面有一个listene...原创 2013-01-26 19:42:28 · 223 阅读 · 0 评论 -
netty源码分析之ChannelPipeline
看了ChannelHandler我们就来看ChannelPipeline,这个类实现了责任链模式,我们就直接来看这个类的实现吧,看完后我们再看看javadoc的,这个写的很详细。 static final InternalLogger logger = InternalLoggerFactory.getInstance(DefaultChannelPip...原创 2013-01-26 19:07:59 · 169 阅读 · 0 评论 -
netty源码分析之ChannelHandler
netty里面最重要的应该是ChannelHandler,这个里面也是用户编程直接打交道的接口,也是串行于ChannelPipeLine里面执行相应的业务逻辑。 从类结构来看,一个handler应该有一个ChannelHandlerContext,ChannelHandler是处在上层的一个标识接口,下面有两个接口分别来处理Upstream event和一个...原创 2013-01-26 18:02:00 · 141 阅读 · 0 评论 -
netty学习之ChannelSink(NioClientSocketPipelineSink)
这个东西应该是netty里面最难理解的,或者最关键的组件了,这个我会慢慢的进行分析。在Pipeline传送完后,都必须都通ChannelSink进行处理。Sink默认处理了琐碎的操作,例如连接、读写等等。 ChannelSink这个组件是来处理downstream请求和产生upstream时间的一个组件,是所有io操作的执行者。也就是传输的逻辑层吧。当chan...原创 2013-01-14 21:58:18 · 386 阅读 · 0 评论 -
netty学习之ChannelEvent
netty里面ChannelEvent是非常重要的一个概念,在这个里面我们来重点分析一下。 ChannelEvent应该是netty里面比较重要的概念了,这个是在ChannelPipeline的ChannelHandlers里面传递的对象。event分为两种,一种是upstream event,另外一种是downstream e...原创 2013-01-14 19:18:51 · 249 阅读 · 1 评论 -
netty源码分析系列文章
想在年终之际将对netty研究的笔记记录下来,先看netty3,然后有时间了再写netty4的,希望对大家有所帮助,这个是一个博客的目录页面,未完待续,希望在大家的鼓励下将这个框架的细节、注意事项、代码技巧等都记录下来。 netty源码分析之ChannelBuffernetty源码分析之Channel接口netty源码分析之Serv...2013-01-14 16:20:51 · 177 阅读 · 0 评论 -
netty学习之ChannelConfig
今天我来来看一下整个ChannelConfig的类的继承层次: 整个类结构来说还是比较好理解的,我就将作者的意图分析一下: 整个ChannelConfig的类的继承层次我感觉是非常明了的: 首先在顶层的ChannelConfig,这个里面定义一个Channel可以设置的基本参数,一堆的options,还有相应的bufferFact...原创 2013-01-14 16:13:03 · 382 阅读 · 0 评论 -
netty学习之ServerChannel
首先我们先来看serverchannel的类继承层次,然后再一个一个的研究。 现在我们来挨个的介绍各个类。 AbstractChannel应该是整个Channel子类的父类,这个里面有一个static的变量allChannels,这个里面放着所有的channel,现在还不能体会放这个得好处。里面感觉没有什么特殊的,allocateId这个方法应该是给channel分配一个id...原创 2013-01-13 10:45:02 · 440 阅读 · 0 评论 -
netty学习之Channel接口
正如javadoc所说的,一个channel给用户提供下面四个服务:1. 当前channel的状态,是open还是connected2. 这个channel的一些配置信息3. 这个channel所支持的一些io操作4. 和这个channel相关联的ChannelPipelineChannel中所有的操作都是异步的,当发生io操作的时候将会返回一个 ChannelFutrue的接口,在这...原创 2013-01-11 16:43:10 · 341 阅读 · 0 评论 -
netty源码分析之ReplayingDecoder
在看了FrameDecoder后,我们接下来再看ReplayingDecoder,我们首先分析下为什么我们已经有了功能非常强大的FrameDecoder了,还行ReplayingDecoder呢,就从下面的例子看起。 假设消息结构是这样的: VERSION - 1 byteTYPE - 1...原创 2013-02-06 01:27:06 · 111 阅读 · 0 评论