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

一、思维导图

二、设计思路

1、各种回调函数梳理

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

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

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

2、其他成员梳理

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

相关推荐
zzzsde7 分钟前
【Linux】线程同步和互斥(5):线程池的实现&&线程安全
linux·运维·服务器·开发语言·算法·安全
雾岛心情14 分钟前
【小铭邮件】小铭邮件工具箱公司版从PST提取EML邮件
运维·工具·exchage·o365·小铭邮件工具箱(公司版)
随便做点啥15 分钟前
鲲鹏CPU + 8卡910A NPU服务器大语言模型推理部署测试报告
运维·服务器·语言模型
非凡大爹15 分钟前
实验十 华为路由器和交换机实现RIP 动态路由协议配置实验指导书
运维·网络·计算机网络·华为
不吃土豆的马铃薯21 分钟前
高性能服务器程序框架详解(包括Reactor,有限状态机等)
linux·服务器·开发语言·网络·c++
春日见22 分钟前
自动驾驶数据驱动规控进化之路
运维·服务器·人工智能·深度学习·算法·机器学习·自动驾驶
ACP广源盛1392462567323 分钟前
GSV2231@ACP#三屏扩展旗舰芯片,TRAE SOLO 多任务并行开发核心引擎
运维·网络·人工智能·嵌入式硬件·gpt·电脑·音视频
程序猿乐锅23 分钟前
Linux常用命令详解:目录、文件、压缩、编辑与查找
linux·运维·服务器
Shadow(⊙o⊙)23 分钟前
库的制作与原理1.0,库打包,协作,目标文件.o、ELF格式。
linux·运维·服务器·开发语言
AOwhisky33 分钟前
Ceph系列第五期:Ceph 对象存储(RADOS Gateway)精讲
linux·运维·笔记·ceph·gateway·对象存储