项目模块1~12总结:服务器大模块梳理

一、思维导图

二、设计思路

1、各种回调函数梳理

服务器里面包含了监听套接字和监听到的通信套接字(新连接),我们要对这两种套接字进行设置回调函数,其中监听套接字里面只要设置读回调,通信套接字要设置5种回调(读,写,任意事件,错误,连接关闭),而要设置出完整的通信套接字5种回调函数就需要外部传入5种回调函数进行补充(任意事件,本地关闭连接,服务器关闭连接,连接建立,业务处理),其中服务器连接关闭是在 TcpServer 类的私有函数里面自己实现了所以没有专门的设置服务器连接关闭的公有函数,而在 TcpServer 里面是虽然有专门的设置任意事件,但外部根本没传入的原因是在构造 Connection 时里面就设置了任意事件回调,当然其他事件回调也设置了,但是任意事件回调是唯一一个独立的回调函数,所以只要设置一次就能完成所有连接的任意事件回调。

分析完通信套接字的回调函数后分析监听套接字的读回调,监听套接字需要对接收的通信套接字进行处理(用 Connection 管理,设置通信套接字的5种回调,开启超时连接销毁,启动连接,添加连接),处理的过程中就有设置通信套接字的5种回调,所以这就是为什么 TcpServer 模块也要有传入外部4个回调函数的原因。

总结:外部传入的是三个回调函数:连接建立,连接关闭,业务处理,用于设置 TcpServer 模块内部的监听套接字读回调和通信套接字的5种回调:读,写,任意,错误,关闭

2、其他成员梳理

EventLoop _baseloop 作为模型中的主 Reactor,LoopThreadPool _pool 作为模型中的存放从 Reactor 共同实现主从 Reactor 模型。

相关推荐
杨云龙UP38 分钟前
TDengine 3.4.2.8 Community 三节点三副本生产集群部署实战(DNode/MNode/taosAdapter/Explorer)
大数据·linux·运维·数据库·tdengine·时序库
梦帮科技1 小时前
领域认知知识库图谱注入:从双式记账图网络到高质量问答对自动化合成流水线
运维·网络·数据库·人工智能·矩阵·架构·自动化
逐流人1 小时前
Ceph分布式存储集群配置与池管理:从配置优先级到PG、复本池与纠删码池
运维·分布式·ceph·云原生·云计算·rados
海宇服务2 小时前
零信任架构实战:基于海宇车型识别精准构建自动化定损网关
运维·人工智能·架构·自动化
Fcy6482 小时前
Linux下 进程间关系与守护进程
linux·运维·服务器·守护进程
g10565591392 小时前
公有云_云运维服务
java·运维·服务器
well06123 小时前
Linux粘滞位与Makefile机制深度解析
linux·运维·服务器
hzxpaipai3 小时前
杭州企业官网怎么建设?从策划到上线的5步建站方法
运维·服务器·前端·网络
哲霖软件3 小时前
非标机械设备公司怎么做信息化?破解通用ERP水土不服难题
大数据·运维
smartpi_ai3 小时前
通用脱机烧录器为什么烧不进 CI-03?下载协议的门槛、免唤醒 10 条的建议值属性
服务器·网络·ci/cd