netty java_Java-彻底弄懂netty-程序员先从简单例子开启netty编程-知识铺

原标题:Java-彻底弄懂netty-程序员先从简单例子开启netty编程-知识铺

知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。

一、回顾Nio编程

1.1 创建ServerSocketChannel。

1.2 设置非阻塞模式。

1.3 绑定端口,开始监听TCP连接。

1.4 创建处理I/O线程。

1.5 创建Selector,把ssc注册到Selector。

1.6 开始接等待客户端连接 ssc.accept。

1.7 启动I/O线程,while循环中轮询channel状态。

1.8 Selector.select()获取到Channel,判断客户端状态: 新加入客户端(加入到监听队列)、读状态、写状态 三种状态,进行处理相应的业务逻辑。

回顾下简单服务端Nio代码:

ca7fd54dce68c174338d61fb46b7bbcf.png

d2d65a26d670f86e640e75b71d16b1ff.png

二、netty简单服务端编程

2.1 创建服务启动类 ServerBootstrap

2.2 创建accept线程 ExecutorService accept

2.3 创建处理线程 ExecutorService worker

2.4 设置socket处理工厂类 NioServerSocketChannelFactory

2.5 设置处理管道的工厂类 ChannelPipelineFactory

2.6 创建业务处理类 HelloServerHandler

2.7 业务代码在 HelloServerHandler内完成

5ea82073aca2ac1faa41b88f88fc4888.png

5f735923c1e4ec7522ba858fb15c4c0b.png

ad94b8fc02e3fd197f37da8de450939b.png

三、Nio和netty对比

1. netty 编写的socket 逻辑清晰

2. netty 大量运用工厂模式设计,处理业务更灵活

3. netty API 使用简单

4. netty 预置多种编码方案,支持主流行网络协议。

5. netty 通过ChannelHandler扩展,灵活多变。

6. netty 性能高,社区活跃,框架成熟。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值