NOTE

3.6 NIO实现的服务器

NIO vs BIO BIO NIO --- --- --- ServerSocket ServerSocketChannel Socket SocketChannel Selector SelectionKey 常见问题 客户端关闭的时候抛出异常,死循环 原因是没有判断 channel.read(

Java创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

NIO vs BIO

BIO NIO
ServerSocket ServerSocketChannel
Socket SocketChannel
Selector
SelectionKey

常见问题

客户端关闭的时候抛出异常,死循环

原因是没有判断channel.read(buffer)的返回值是否为-1,-1则表示客户端关闭了连接,不能继续读取了

selector.select阻塞为什么说NIO是非阻塞的

selector.select//阻塞
selector.select(1000)//不阻塞
selector.wakeup//唤醒selector

SelectionKey.OP_WRITE是什么意思

表示底层缓冲区有空间可写