![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Netty
bylijinnan
这个作者很懒,什么都没留下…
展开
-
Netty源码学习-DefaultChannelPipeline
[code="java"]package com.ljn.channel;/** * ChannelPipeline采用的是Intercepting Filter 模式 * 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现 * * 下面对ChannelPipeline作一个模拟,只模拟关键代码: */public class ...原创 2013-11-27 17:00:36 · 149 阅读 · 0 评论 -
Netty源码学习-HTTP-tunnel
Netty关于HTTP tunnel的说明:[url]http://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/socket/http/package-summary.html#package_description[/url]这个说明有点太简略了一个完整的例子在这里:[url]https://github....2014-01-14 18:19:03 · 307 阅读 · 0 评论 -
Netty源码学习-FileRegion
今天看org.jboss.netty.example.http.file.HttpStaticFileServerHandler.java可以直接往channel里面写入一个FileRegion对象,而不需要相应的encoder:[code="java"] //pipeline(没有诸如“FileRegionEncoder”的handler): public Chann...2013-12-31 17:17:01 · 926 阅读 · 0 评论 -
Netty源码学习-HttpChunkAggregator-HttpRequestEncoder-HttpResponseDecoder
今天看Netty如何实现一个Http Serverorg.jboss.netty.example.http.file.HttpStaticFileServerPipelineFactory:[code="java"] pipeline.addLast("decoder", new HttpRequestDecoder()); pipeline.addLast("ag...2013-12-27 16:10:40 · 1406 阅读 · 0 评论 -
Netty源码学习-ReadTimeoutHandler
ReadTimeoutHandler的实现思路:开启一个定时任务,如果在指定时间内没有接收到消息,则抛出ReadTimeoutException这个异常的捕获,在开发中,交给跟在ReadTimeoutHandler后面的ChannelHandler,例如[code="java"]private final ChannelHandler timeoutHandler =...2013-12-26 17:53:50 · 2727 阅读 · 0 评论 -
Netty学习笔记
本文是阅读以下两篇文章时:[url]http://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html[/url][url]http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html[...2013-12-25 18:39:33 · 78 阅读 · 0 评论 -
Netty源码学习-ChannelHandler
一般来说,“有状态”的ChannelHandler不应该是“共享”的,“无状态”的ChannelHandler则可“共享”例如ObjectEncoder是“共享”的, 但 ObjectDecoder 不是因为每一次调用decode方法时,可能数据未接收完全(incomplete),它与上一次decode时接收到的数据“累计”起来才有可能是完整的数据,是“有状态”的...2013-12-25 18:12:02 · 99 阅读 · 0 评论 -
Netty源码学习-ServerBootstrap启动及事件处理过程
Netty是采用了Reactor模式的多线程版本,建议先看下面这篇文章了解一下Reactor模式:[url]http://bylijinnan.iteye.com/blog/1992325[/url]Netty的启动及事件处理的流程,基本上是按照上面这篇文章来走的文章里面提到的操作,每一步都能在Netty里面找到对应的代码其中Reactor里面的Acceptor就对应Net...2013-12-19 20:11:57 · 183 阅读 · 0 评论 -
Netty源码学习-Java-NIO-Reactor
Netty里面采用了NIO-based Reactor Pattern了解这个模式对学习Netty非常有帮助参考以下两篇文章:[url]http://jeewanthad.blogspot.com/2013/02/reactor-pattern-explained-part-1.html[/url][url]http://gee.cs.oswego.edu/dl/cpjsl...2013-12-19 18:21:55 · 134 阅读 · 0 评论 -
Netty源码学习-ReplayingDecoder
ReplayingDecoder是FrameDecoder的子类,不熟悉FrameDecoder的,可以先看看[url]http://bylijinnan.iteye.com/blog/1982618[/url]API说,ReplayingDecoder简化了操作,比如:FrameDecoder在decode时,需要判断数据是否接收完全:[code="java"]p...2013-12-13 20:21:22 · 182 阅读 · 0 评论 -
Netty源码学习-DefaultChannelPipeline2
Netty3的API[url]http://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/ChannelPipeline.html[/url]里面提到ChannelPipeline的一个“pitfall”:如果ChannelPipeline只有一个handler(假设为handlerA)且希望用另一handler(假设为han...2013-12-11 15:47:36 · 95 阅读 · 0 评论 -
Netty源码学习-CompositeChannelBuffer
CompositeChannelBuffer体现了Netty的“Transparent Zero Copy”查看API([url]http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/package-summary.html#package_description[/url])可以看到,所谓“Transparent Zer...2013-12-06 15:54:02 · 173 阅读 · 0 评论 -
Netty源码学习-DelimiterBasedFrameDecoder
看DelimiterBasedFrameDecoder的API,有举例: 接收到的ChannelBuffer如下:[code="java"] +--------------+ | ABC\nDEF\r\n | +--------------+[/code] 经过DelimiterBasedFrameDecoder(Delimiters.lineDelimiter())之...2013-12-05 18:36:59 · 581 阅读 · 0 评论 -
Netty源码学习-ObjectEncoder和ObjectDecoder
Netty中传递对象的思路很直观:Netty中数据的传递是基于ChannelBuffer(也就是byte[]);那把对象序列化为字节流,就可以在Netty中传递对象了相应的从ChannelBuffer恢复对象,就是反序列化的过程Netty已经封装好ObjectEncoder和ObjectDecoder先看ObjectEncoderObjectEncoder是往外发送...2013-12-05 16:06:48 · 1663 阅读 · 0 评论 -
Netty源码学习-LengthFieldBasedFrameDecoder
先看看LengthFieldBasedFrameDecoder的官方API[url]http://docs.jboss.org/netty/3.1/api/org/jboss/netty/handler/codec/frame/LengthFieldBasedFrameDecoder.html[/url]API举例说明了LengthFieldBasedFrameDecoder的解析机制...2013-12-05 15:20:21 · 196 阅读 · 0 评论 -
Netty源码学习-FrameDecoder
Netty 3.x的user guide里FrameDecoder的例子,有几个疑问: 1.文档说:FrameDecoder calls decode method with an internally maintained cumulative buffer whenever new data is received. 为什么每次有新数据到达时,都会调用decode方法? 2.De...2013-11-28 18:38:56 · 208 阅读 · 0 评论 -
TCP的TIME-WAIT
原文连接:[url]http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html[/url]以下为对原文的阅读笔记说明: 主动关闭的一方称为local end,被动关闭的一方称为remote end本地IP、本地端口、远端IP、远端端口这一“四元组”称为quadruplet,也称为socke...2014-04-23 16:35:23 · 93 阅读 · 0 评论