《Netty》从零开始学netty源码(五十七)之ServerBootstrap.bind()

news/2025/2/21 8:38:35/

目录

  • ServerBootstrap.bind()
    • initAndRegister()
    • init()
    • register()
    • doBind0()

ServerBootstrap.bind()

在第一篇的HelloWorld中通过ServerBootstrap.bind()方法绑定端口号并最终启动Netty的服务,服务端的bind过程如下:

在这里插入图片描述

上面的代码主要分成两部分,第一部分是初始化与注册,第二部分为channel绑定端口号,一般来说会采用异步回调的机制。接下来我们具体分析这两部分的源码。

initAndRegister()

在这里插入图片描述

第一步创建channel的过程前面的文章已经分析过,第二步的init()为抽象方法,服务端会在ServerBootstrap中实现,第三步的注册过程会在NioEventLoopGroup中实现。

init()

初始化的过程主要是把在HelloWorld中设置的属性值填充,然后向pipeline中添加初始化handler,当channel注册成功后执行一些初始化的工作。

在这里插入图片描述

register()

在这里插入图片描述

注册成功后会执行init()方法中向pipeline添加的ChannelInitializerinitChannel方法,即向NioEventLopp提交一个任务,该任务是向pipeline添加ServerBootstrapAcceptor

doBind0()

在这里插入图片描述

通过ServerBootstrapbind()方法可知Netty很多工作都是异步执行的,在分析的时候需要多打断点或者log的形式分析,最后总结一下整个bind()的过程。

在这里插入图片描述

至此,**ServerBootstrap.bind()**的分析到此结束,感谢阅读。


http://www.ppmy.cn/news/67803.html

相关文章

5G干扰排查优化方案介绍!

干扰成因 干扰源的发射信号(阻塞信号、加性噪声信号)从天线口被放大发射出来后,经过了空间损耗L,最后进入被干扰接收机。如果空间隔离不够的话,进入被干扰接收机的干扰信号强度够大,将会使接收机信噪比恶化…

1053 Path of Equal Weight(超级无敌详细注释+45行代码)

分数 30 全屏浏览题目 切换布局 作者 CHEN, Yue 单位 浙江大学 Given a non-empty tree with root R, and with weight Wi​ assigned to each tree node Ti​. The weight of a path from R to L is defined to be the sum of the weights of all the nodes along the pa…

使用ceph-ansible部署分布式存储Ceph-octopus版本

使用ceph-ansible部署分布式存储Ceph-octopus版本 1. Ceph基础概念及部署方式1.1. Ceph基本概念1.2. Ceph部署方式2. 系统初始化配置3. Ceph集群部署3.1. Ansible安装与配置3.2. ceph-ansible安装与配置3.2.1. 下载ceph-ansible3.2.2. 安装ceph-ansible依赖3.2.3. 修改ceph配置…

[Mysql] MySQL索引与事务

黎明前的黑暗最难度过,但一旦坚持住,便是灿烂朝阳. 文章目录 1. 索引1.1 索引的概念1.2 索引的创建与使用 2. 事务2.1 事务的使用2.2 事务的特性与隔离机制2.2.1 隔离级别 1. 索引 1.1 索引的概念 索引是一种特殊的文件,可以对表中一列或多列创建索引,…

【Linux】Shell脚本之函数的操作+实战详解(建议收藏⭐)

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录 shell脚本函数设置函数的意义函数的基…

Vivado使用技巧:时钟的约束方法

时钟的基础知识 数字设计中,“时钟”表示在寄存器之间可靠地传输数据所需的参考时间;Vivado的时序引擎利用时钟特征来计算时序路径需求,通过计算时间裕量(Slack)的方法报告设计的时序空余;时钟必须…

功能更新|Share Creators更便捷、更安全的快速分享功能

Share Creators智能数字资产管理软件迎来重要功能更新——更便捷、更安全的快速分享功能来了! 千万不要小看Share Creators强大的快速分享功能,在游戏开发过程中,需要设计游戏的框架、玩法、系统、关卡,并确定游戏的剧情、角色、…

不限次数的chatGPT

不说废话直接看方法: 不用翻墙,开干 第一步:打开电脑的Edge浏览器,就是windows系统的默认浏览器,搜索wetab,点击如下的官方链接就会进入安装插件界面 第二步:点击chat AI就会弹出这个弹窗&…