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

一、思维导图

二、设计思路

1、各种回调函数梳理

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

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

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

2、其他成员梳理

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

相关推荐
darkdragonking6 分钟前
由一次构建 OpenEuler 22.03 dnf源所了解到的
linux·运维·服务器
米高梅狮子13 分钟前
Ceph 分布式存储 部署
linux·运维·数据库·分布式·ceph·docker·华为云
WUYOUGYLU15 分钟前
云服务器怎么选、怎么用,才不花冤枉钱
运维·服务器
曹牧20 分钟前
Nginx 504
运维·nginx
小明同学0124 分钟前
C++后端项目:统一大模型接入 SDK(四)
服务器·开发语言·c++·计算机网络·chatgpt
曦夜日长36 分钟前
Linux系统篇,开发工具(五):git的基本使用和浅层认识
linux·运维·服务器
Harm灬小海37 分钟前
【云计算学习之路】学习Centos7系统-ROOT密码重置方法
linux·运维·服务器·学习·云计算
IT瑞先生38 分钟前
企业云服务器选型分析
运维·服务器
志栋智能1 小时前
超自动化巡检:保障数字化转型的“底座工程”
运维·自动化
Python-AI Xenon1 小时前
Linux逻辑卷(LVM)初始化与文件系统选型全指南
linux·运维·性能测试·存储