1.什么是Selector
2.工作流程:
3.案例:
一.服务端:
serverSocketChannel.configBlocking(false)设置的是连接非阻塞
1)创建多路复用器
2)创建socket服务端并设置为非阻塞
3)绑定服务端的端口,并将服务端注册到多路复用器上,然后监听服务端的连接情况。
4)将多路复用器设置为阻塞状态,有客户端的事件注册时则多路复用器变为非阻塞开始执行while中selector.select()代码行下面的代码。
5)轮询注册的客户端事件,每一个key代表一个客户端事件。
连接事件表示,客户端和服务端已经连接好了。
可读事件表示,客户端给服务端发的数据。
遍历客户端的请求事件的时候需要从迭代器中删除,避免重复。
6)分别进行具体的处理,连接和读事件。
完善上述代码1:
完善2&#