在NioServerSocketChannel中调用newChannel方法创建java原生的channel,过程如下:
ServerSocketChannel是一个抽象类,WEPollSelectorProvider调用openServerSocketChannel
方法创建的是它的实现类ServerSocketChannelImpl,类结构如下:
ServerSocketChannel的参数如下:
当channel调用register
方法向Selector注册int代表的类型事件成功后返回SelectionKey,该key会被记录到channel的keys数组,Selector会监控注册的事件类型是否有发生,如有发生会根据key通知channel。
ServerSocketChannel的功能如下:
channel调用register
方法向Selector注册,调用bind
方法绑定端口号,调用accept
方法接受客户端发来的连接请求并建立连接,调用close
方法关闭channel。
在NioServerSocketChannel最终调用带provider的构造函数创建ServerSocketChannel,源码如下:
ServerSocketChannel是java的原生channel,它作为NioServerSocketChannel的channel参数的值,NioServerSocketChannel执行相应的操作时最终会调用其来执行。
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: