🏺

瓶子的跋涉

=YuHeShui=

Linux后台服务器C++

Linux后台服务器C++

基于Reactor高并发服务器 C++ 基于Reactor的高并发服务器,分为反应堆模型,多线程,I/O模型,服务器,Http请求和响应五部分 反应堆模型 Channel 描述了文件描述符以及读写事件,以及对应的读写销毁回调函数,对应存储arg读写回调对应的参数 Channel添加写和判断 异或 :…
more...
B树

B树

多路平衡搜索树 索引在内存,数据映射磁盘(磁盘页4K的整数倍), 多路,降低红黑树和二叉树的层高,降低IO访问次数 B树和B+树 B树节点中即存储数据信息,也会存储索引信息 B+树节点中即存储数据信息,也会存储索引信息,非叶子节点只有索引信息 B+ 树期待更少的磁盘IO - 将索引信息和数据信息进行…
more...
C++11新特性绑定器包装器

C++11新特性绑定器包装器

定义别名 using 和typedef一样,并不会创建新的类型,他们只是给某些类型定义了新的别名,using相教于typedef的优势在于定义函数更加直观,并且可以给模版定义别名 而typedef 无法定义模版 使用 列表初始化 统一初始化 初始化函数返回值 细节 聚合体 什么是聚合体 普通数组本身…
more...
红黑树

红黑树

Red-black tree 自平衡二叉查找树,可在O(log n)时间内完成查找,插入和删除。 强查找. Linux 进程调度CFS epoll 事件块的管理 Nginx Timer事件管理 性质 每个节点是红色的或者黑的 根节点是黑的 每个叶子节点是黑的 如果一个节点是红的,则它的两个儿子都是黑…
more...
Linux后台服务器simple

Linux后台服务器simple

Http高并发服务器(Reactor模型)01 simple 开发环境 系统 Visual studio 2022 + WSL子系统, 详细查看 微软教程 [^1] 解决方案文件下->文件名->属性 常规->远程根目录(可设置项目上传的目录) C/C++ -> 语言 -> C语言标准 -> 选择 C…
more...
linux IO多路复用

linux IO多路复用

I/O多路复用(转接) 处理并发, 多进程/多线程并发,accept检测客户端连接请求和子线程和建立连接的客户端通信,都会发送阻塞,有新客户端连接/有数据到达才会解除阻塞。 IO多路转接并发 委托内核帮助检测文件描述符的状态(通信和监听两类), 在通信过程中监听(连接请求信息)和通信(读和写)都会放…
more...
Qt多线程TCP

Qt多线程TCP

Qt多线程文件传输项目 通信流程 项目文件 pro文件添加network模块 服务端 mainwindow.h mainwindow.cpp mytcpserver.h mytcpserver.cpp sendfile.h sendfile.cpp 客户端 mainwindow.h mainwind…
more...
Qt套接字通信

Qt套接字通信

TCP通信 Qt需要network模块实现套接字通信,在pro文件中提前加入。所有通信函数与C++封装TCP通信类似。 通信与函数 TCP通信案例 服务端 UI server.h server.cpp 客户端 UI client.h client.cpp UDP通信 Qt的客户端和服务端不区分,实现…
more...
linux信号

linux信号

信号本质是一个整数,不同的信号对应不同的值,由于信号的结构简单,不能携带大量信息量,在系统中的优先级非常高 信号编号 SIGHUP : 用户退出shell时,由shell启动的所有进程都收到此信号 SIGINT : 用户按下Ctrl + C 组合键,用户终端向所有正在运行的由该终端启动的程序发出此信…
more...
linux套接字通信UDP

linux套接字通信UDP

UDP通信 UDP是一个面向无连接的(不需要connect操作),不安全的,报式传输层协议,UDP的通信过程也是默认阻塞的 UDP首部没有关于数据顺序的信息,若数据丢失,就全部丢失,不存在一半的情况,发送端不知道数据是否非正确接受,也不会重发数据。 在UDP通信过程中,哪一段是接受数据的角色,那么这…
more...