Linux的NIO实现方式
https://www.jianshu.com/p/718c24af400f
NIO通信步骤
1.创建ServerSocketChannel,为它配置非阻塞模式
2.绑定监听,配置TCP参数,录入backlog大小等等
3.创建一个独立的IO线程,用于轮询多路复用器Selector
4.创建Selector,将之前创建的ServerSocketChannel注册到Selector上,并设置监听标识位SelectionKey.ACCAPT
5.启动IO线程,在循环体中执行Selector.select()方法,轮询就绪通道
6.当轮询到处于就绪的通道时,进行操作位判断,如果是ACCEPT状态,说明新的客户端接入,则调用accept方法接受新的客户端
7.设置新接入客户端的一些参数,如非阻塞、并将其通道继续注册到Selector之中,设置监听标识位等
8.如果轮询的通道操作位是READ,则进行读操作
Netty通信步骤
1.创建两个NIO线程组,一个专门用于网络事件处理(接受客户端连接),另一个则进行网络通信读写
2.创建一个ServerBootstrap对象,配置Netty的一系列参数,例如接受传出参数的缓存大小等等
3.创建一个实际处理数据的类ChannelInitializer,进行初始化准备工作,比如设置接受传出数据的字符集
、格式、已经实际处理数据的接口
4.绑定端口,执行同步阻塞方法等待服务器端口启动即可。