Netty使用:通过BootStrap来启动。而BootStrap主要分为两类:1.面向连接(TCP)的(ClientBootStrap和ServerBootStrap);2. 非面向连接(UDP)的(ConnectionlessBootstrap).

  Channel分为ChannelFactory和ChannelPipelineFactory。前者主要生产网络通讯相关的Channel实例和ChannelSink实例;后者主要用于具体的传输数据的处理。

  使用步骤

  1. 实例化一个BootStrap,并通过构造方法指定一个ChannelFactory;
  2. 向bootstrap实例注册一个自己实现的PipelineFactory;
  3. 服务器:bootstrap.bind(new InetSocketAddress(port)),等待客户端来连接;客户端:bootstrap.connect(new InetSocketAddress(host, post))取得一个future,Netty会去连接远程主机。完成连接后,会发起类型为CONNECTED的ChannelStateEvent,并且开始在自定义的Pipeline里面流转。
  4. 如果注册的handler有这个事件的响应方法,那么就会被调用到。

  处理策略

  NIO:BOOS(1个)处理连接接入,WORKER(多个)处理boss传递过来的channel数据,并触发相应事件传递给pipeline进行数据处理。

  BIO:

参考:Netty代码分析

最新文章

  1. 2015 年最受 Linux 爱好者欢迎的软硬件大盘点
  2. windows 2008 R2 64位系统,找到Microsoft Excel 应用程序
  3. ubuntu使用ssh登入不执行.bashrc解决方法
  4. mybatis动态SQL中的sql片段
  5. numpy之sum
  6. Appium Android 屏幕滑动
  7. HTTP请求方式中get和post的区别
  8. (转)AspNetPager查询分页问题(点击页码,不再是查询后的数据集)viewstate解决
  9. 浅析Linux的软中断的实现
  10. Angular - - $q 承诺与延迟
  11. Hibernate (二)
  12. SpringBoot的自动配置
  13. 使用WebSocket帮助应用程序群集节点间通信
  14. Oracle简单的序列应用
  15. JAVA设计模式(一)单例模式
  16. Visual Studio 2015的安装和简单的测试
  17. 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
  18. Linux shell 提取文件名和目录名
  19. 19.Eclipse 修改默认的keystore签名文件
  20. TCP为何采用三次握手来建立连接,若采用二次握手可以吗?

热门文章

  1. 2017-2018-2 20165234 实验四《Android程序设计》实验报告
  2. 微信支付-H5网页支付开通流程
  3. 遗传算法selection总结-[Fitness, Tournament, Rank Selection]
  4. mysql配置修改项
  5. HTTP协议07-通用首部字段
  6. InstallShield 静默安装
  7. HBase详细概述
  8. Ionic-轮播图ion-slide-box
  9. $Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互
  10. mysql设计表时注意事项