Netty(五):ServerBootstrap启动流程

本文详细解析了Netty中ServerBootstrap的启动流程,包括初始化、注册与绑定三个阶段,通过时序图直观展示各阶段操作,并探讨了NIO在Netty中的实现方式。

这篇文章主要是对ServerBootstrap启动流程做一个梳理,方便我们串联起各个类,同时也对主要的一些类有个大概的印象,方便之后逐个类的深入学习。

本篇文章不在具体贴出代码,而是对整个启动流程画了一个时序图,方便我们直观的了解各个过程,读者可以照着时序图,自己跟踪一遍代码,了解整个过程。

 清晰大图点此

 

参照上面的流程图,我们对整个启动过程做一个简单的概括。

启动流程大概可以分为三个步骤:初始化,注册,绑定。

1).初始化主要的过程:创建Channel对象,为Channel配置属性及选项,添加对应的handler。

2).注册的主要过程:将channel与eventLoop绑定;调用内部封装的ServerSocketChannel注册interestOps;注册完成后,调用pipeline产生对应的事件(fireChannelRegister,以及可能的Actived事件)

3).绑定的主要过程:调用内部封装的ServerSocketChannel绑定端口,绑定成功后(fireChannelActived)

 

同时我在看代码的时候,也有一些问题仍然没有头绪:

问题1:ServerSocketChannel注册的interestOps为何是0?我们知道SelectionKey中OP_READ为1;OP_WRITE为4;OP_CONNECT为8;OP_ACCEPT为16。那注册0表示什么意思?

问题2:了解NIO的同学应该知道,ServerSocketChannel应该在注册对应Connect或是Accept之类的事件,然后在有连接时,产生SocketChannel,那么Netty是在何处实现这部分的操作的?

 回答见Netty学习系列六

 

转载于:https://www.cnblogs.com/insaneXs/p/9900006.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值