netty 学习(1)
2024-10-18 01:41:29
Netty使用:通过BootStrap来启动。而BootStrap主要分为两类:1.面向连接(TCP)的(ClientBootStrap和ServerBootStrap);2. 非面向连接(UDP)的(ConnectionlessBootstrap).
Channel分为ChannelFactory和ChannelPipelineFactory。前者主要生产网络通讯相关的Channel实例和ChannelSink实例;后者主要用于具体的传输数据的处理。
使用步骤
- 实例化一个BootStrap,并通过构造方法指定一个ChannelFactory;
- 向bootstrap实例注册一个自己实现的PipelineFactory;
- 服务器:bootstrap.bind(new InetSocketAddress(port)),等待客户端来连接;客户端:bootstrap.connect(new InetSocketAddress(host, post))取得一个future,Netty会去连接远程主机。完成连接后,会发起类型为CONNECTED的ChannelStateEvent,并且开始在自定义的Pipeline里面流转。
- 如果注册的handler有这个事件的响应方法,那么就会被调用到。
处理策略
NIO:BOOS(1个)处理连接接入,WORKER(多个)处理boss传递过来的channel数据,并触发相应事件传递给pipeline进行数据处理。
BIO:
参考:Netty代码分析
最新文章
- 2015 年最受 Linux 爱好者欢迎的软硬件大盘点
- windows 2008 R2 64位系统,找到Microsoft Excel 应用程序
- ubuntu使用ssh登入不执行.bashrc解决方法
- mybatis动态SQL中的sql片段
- numpy之sum
- Appium Android 屏幕滑动
- HTTP请求方式中get和post的区别
- (转)AspNetPager查询分页问题(点击页码,不再是查询后的数据集)viewstate解决
- 浅析Linux的软中断的实现
- Angular - - $q 承诺与延迟
- Hibernate (二)
- SpringBoot的自动配置
- 使用WebSocket帮助应用程序群集节点间通信
- Oracle简单的序列应用
- JAVA设计模式(一)单例模式
- Visual Studio 2015的安装和简单的测试
- 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
- Linux shell 提取文件名和目录名
- 19.Eclipse 修改默认的keystore签名文件
- TCP为何采用三次握手来建立连接,若采用二次握手可以吗?
热门文章
- 2017-2018-2 20165234 实验四《Android程序设计》实验报告
- 微信支付-H5网页支付开通流程
- 遗传算法selection总结-[Fitness, Tournament, Rank Selection]
- mysql配置修改项
- HTTP协议07-通用首部字段
- InstallShield 静默安装
- HBase详细概述
- Ionic-轮播图ion-slide-box
- $Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互
- mysql设计表时注意事项