Netty服务端Channel的创建
1、服务端创建Channel之前的疑问?
(1)服务端的Socket在哪里初始化?
(2)在哪里accept连接?
2、Netty服务端启动分为四个过程
(1)创建服务端Channel
源码跟踪:
bind()用户代码入口
进入bind()方法,可以发现initAndRegister()初始化并注册方法
进入initAndRegister ()方法,可以发现newChannel()创建服务端Channel方法
源码追踪:
newSocket()[通过jdk来创建底层jdk channel]
底层使用的是java包
NioServerSocketChannelConfig()[tcp参数配置类]
AbstractNioChannel()-configureBlocking(false)[配置非阻塞模式]
如果使用Socket IO编程,这句代码必不可少;如果使用Netty编程,这行代码是默认的。
AbstractChannel[创建id、unsafe、pipeline]
AbstractChannel表示客户端创建channel
id表示channel唯一标识
unsafe表示可以设置tcp参数配置
pipeline表示可以配置逻辑链
(2)初始化服务端Channel
(3)注册selector
(4)端口绑定