原标题: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代码:
二、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内完成
三、Nio和netty对比
1. netty 编写的socket 逻辑清晰
2. netty 大量运用工厂模式设计,处理业务更灵活
3. netty API 使用简单
4. netty 预置多种编码方案,支持主流行网络协议。
5. netty 通过ChannelHandler扩展,灵活多变。
6. netty 性能高,社区活跃,框架成熟。返回搜狐,查看更多
责任编辑: