netty源码解读四(bind方法)

initAndRegister方法

主要有三个方法

channelFactory.newChannel方法

1)初始化NioServerSocketChannel,设置为非阻塞状态,保存了感兴趣的事件类型为accept;
2)创建服务端Channel的pipeline,但管道中只有HeadContext<——>TailContext;
3)创建服务端Channel的Unsafe对象,类型是NioMessageUnsafe对象;

init方法

向服务端pipeline中添加一个ChannelInitializer实例,并且加到另外一个链表中,为服务端channel向selector注册之后的回调(拆包,异步任务)做准备。
1)初始化服务端pipeline,向服务端管道中添加一个ChannelInitializer实例,形成HeadContext<——>ChannelInitializer<——>TailContext;另外addLast方法中还会将ChanneInitializer实例加入到PendingHandlerCallback链表中构成一个单向链表,当服务端Channel注册之后,会从该链表中取出CI实例执行initChannel方法。
2)ChannelInitializer实例中只有一个initChannel方法中,其包括两部分逻辑,即往服务端pipeline添加handler属性中保存的处理器和往bossGroup的nioEventLoop中提交异步任务2;调

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

orcharddd_real

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值