电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Netty代码分析VIP免费

Netty代码分析_第1页
1/9
Netty代码分析_第2页
2/9
Netty代码分析_第3页
3/9
Netty 代码分析Posted by bucketli on 2010-09-25 Leave a comment (1) Go to commentsNetty 提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序[官方定义],整体来看其包含了以下内容:1.提供了丰富的协议编解码支持,2.实现自有的buffer 系统,减少复制所带来的消耗,3.整套 channel 的实现,4.基于事件的过程流转以及完整的网络事件响应与扩展,5.丰富的example。本文并不对 Netty 实际使用中可能出现的问题做分析,只是从代码角度分析它的架构以及实现上的一些关键细节。首先来看下最如何使用 Netty(其自带 example 很好展示了使用),Netty 普通使用一般是通过 BootStrap 来启动,BootStrap 主要分为两类:1.面向连接(TCP)的BootStrap(ClientBootStrap 和 ServerBootstrap),2.非面向连接(UDP) 的(ConnectionlessBootstrap)。Netty 整体架构很清晰的分成 2 个部分,ChannelFactory 和ChannelPipelineFactory,前者主要生产网络通信相关的Channel 实例和ChannelSink 实例,Netty 提供的ChannelFactory 实现基本能够满足绝大部分用户的需求,当然你也可以定制自己的ChannelFactory,后者主要关注于具体传输数据的处理,同时也包括其他方面的内容,比如异常处理等等,只要是你希望的,你都可以往里添加相应的handler,一般 ChannelPipelineFactory 由用户自己实现,因为传输数据的处理及其他操作和业务关联比较紧密,需要自定义处理的handler。现在,使用 Netty 的步骤实际上已经非常明确了,比如面向连接的Netty 服务端客户端使用,第一步:实例化一个 BootStrap,并且通过构造方法指定一个ChannelFactory 实现,第二步:向 bootstrap 实例注册一个自己实现的ChannelPipelineFactory,第三步:如果是服务器端,bootstrap.bind(newInetSocketAddress(port)),然后等待客户端来连接,如果是客户端,bootstrap.connect(new InetSocketAddress(host,port))取得一个 future,这个时候 Netty 会去连接远程主机,在连接完成后,会发起类型为 CONNECTED 的ChannelStateEvent,并且开始在你自定义的Pipeline 里面流转,如果你注册的handler 有这个事件的响应方法的话那么就会调用到这个方法。在此之后就是数据的传输了。下面是一个简单客户端的代码解读。// 实例化一个客户端 Bootstrap 实例,其中 NioClientSocketChannelFactory实例由 Netty 提...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Netty代码分析

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部