- 博客(25)
- 收藏
- 关注
原创 Reactor模型高并发服务器——05_多线程模块与接收连接模块与服务器模块
在博主仔细考虑后决定把tcpserver模块加到该篇博客后,因为除了Httpserver模块以外的剩下的三个模块实现还是比较简单,毕竟大多是对之前模块的调用封装之类的操作,所以一篇文章将这个服务器组件的基本组件搭出来,只是没有应用层协议支持而已,但是该项目的核心功能可以完成在实现完这三个模块后,抛开协议支持不说,该项目基本完成,应用层协议的支持基本就是方便使用者废话不多说,下面直接开始。
2025-04-05 22:28:17
881
原创 Reactor模型高并发服务器——04_连接管理模块
连接管理模块不名思意就是一个管理连接的模块,该模块的主要功能就是管理一个客户端连接的从连接到释放的所有过程,这个模块同样整合了前面的全部模块,包括会使用到Any类,具体的设计会在下面进行详细分析,该模块是该项目的核心模块之一,所以需要注意一些细节,毕竟整个了多个模块,也得先确保前面模块的正确,不然出错会很麻烦,这时候就考验你的调试能力了。
2025-04-05 22:27:48
958
原创 Reactor模型高并发服务器——03_事件循环调用模块
虽然标题中只是一个事件循环监控模块,但是这模块中有四个小模块相互关联起来组成的模块,分别为Channel模块、Poller模块、TimerWheel模块、EventLoop模块,准确来说,EventLoop模块将前三个模块的功能集成起来这个模块的主要作用就是监控描述符的事件,并根据触发的事件调用指定的函数进行处理,同时当监控监听套接字事件时根据用户需求进行超时连接释放操作,所以模块中使用了回调函数、I/O多路复用、时间轮等。
2025-04-04 21:50:39
852
原创 Reactor模型高并发服务器——02_缓冲区模块与套接字模块
接下来开始逐步实现项目中的多个模块了,首先先实现缓冲区模块和套接字模块,但是在实现这两个模块之前先在项目中加入日志模块很重要,有些打印信息可以帮助调试。提醒:接下来所有的模块实现可能会出现各种各样的bug,博主在实现的时候几乎每次都会遇到新bug,都是代码中一些不起眼的错误,所以实现过程一定要仔细,实现完一个模块就进行测试。当然,博主会在一些容易出错的地方提醒。
2025-04-04 21:49:55
1165
原创 Reactor模型高并发服务器——00_项目介绍
使用一个高并发组件即可搭建一个高性能服务器,在C++第三方库中的Muduo库就是高性能开源网络库,专为Linux多线程服务端程序设计。该库以事件驱动为核心,采用非阻塞IO和Reactor模式实现高并发处理,内部通过高效的epoll与多线程协作机制优化资源调度。那么这个项目就是仿照muduo库的实现方式,自己实现一个one thread one loop式主从Reactor模型高并发服务器组件,通过自己实现的高并发服务器组件,就可以简洁快速的完成一个高性能的服务器搭建,同时,实现过程中也能巩固网络通信知识。
2025-03-21 18:42:36
759
原创 站内搜索引擎——05_html前端模块(前端程序)
博主本人没有对前端进行系统学习过,前端代码只写过几次,所以下面如果有什么问题请见谅,可以在评论区指点。因为前端页面代码并没有什么好阐述的,这个模块主要的重点是`JavaScript`代码,该部分的代码是前端和后端关联的关键,所以着重讲解该部分代码。
2025-03-13 17:54:42
673
原创 站内搜索引擎——04_http网络模块(后端主程序)
这个模块实现相对简单,因为使用了现成的库来加入http,不需要自己写http,调用cpp-httplib库中的函数即可。该模块的大致结构和上一个模块中的测试的代码结构大致相似,只是在该部分的代码最后使用的http而不是命令行,废话不多说,直接开始实现。
2025-03-13 17:53:48
741
原创 Day4 C++算法题—53.最大子数组和&238.除自身以外数组的乘积
日常算法题分享以及个人解题过程——53.最大子数组和&238.除自身以外数组的乘积
2025-03-11 20:45:18
731
原创 站内搜索引擎——03_Searcher搜索模块
该模块主要要实现的功能就是创建`Index`对象并建立索引和使用用户输入的关键词去获取相关索引并以特定格式返回。上一篇博客也提到了上一个模块的测试要等实现完这个模块然后一起测试,原因就是,这个模块大部分都是调用索引模块中的函数
2025-03-11 20:43:58
951
原创 Windows系统下VSCode扩展和用户数据目录位置更改
VSCode的扩展与用户数据都是默认存在C盘下的,但是由于C盘的空间有限,电脑在使用过程中系统很多文件会存进C盘中,致使C盘爆红,而且去清理C盘的时候不知道清理哪里,所以修改VSCode这两个数据文件的目录位置很有必要需要注意的是,VSCode并不支持自定义这两个文件夹的位置,所以需要使用其他方式去指定目录位置。
2025-03-04 21:18:17
1228
原创 站内搜索引擎——00_项目介绍
boost是C++库之一,这个网站就是该库的官方网站,这个网站涵盖了boost库各种函数的使用介绍,虽然现在boost官网也增加了搜索功能,但是我们仍然可以使用boost官网的资源自己做个boost搜索引擎下面是boost官网自己的搜索引擎所以该项目的任务就是做出很官方类似的boost库文档搜索引擎。
2025-03-03 19:47:31
1057
原创 VS Code最新版本Retome远程ssh不兼容旧服务器问题
从2024年1月,vscode更新了1.86版本后,使用vscode远程连接一些老版本Linux服务器(比如常见的Centos7)本文章将用三种方式来解决
2024-10-11 19:33:26
4185
6
原创 站内搜索引擎——01_数据去标签与数据清洗
项目环境:Linux云服务器(centos7.9)、vscode1.85.2、g++/CMake技术栈:C/C++ C++11、STL、标准库 Boost、Jsoncpp、cppjieba、cpp-httplib、html。
2024-09-25 12:39:11
825
1
原创 C++学习之路(C++初阶)——类和对象(上)
本博客主要为学习C++类和对象内容做准备,开头补充一些C++特殊语法,而且可能会在后面用到的语法这几个语法和C语言不太相似,具体请友友仔细品味!!!上篇博客《命名空间》只是为C++开了个头,这篇才是正菜。
2023-06-01 06:00:00
1211
71
原创 小白的Linux系统学习之路——学前准备(了解Linux、搭建Linux环境)
Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。Linux不仅系统性能稳定,而且是开源软件。
2023-05-27 13:04:28
1328
46
原创 数据结构初阶(用C语言实现简单数据结构)--栈和队列
通过上篇有关顺序表和链表的博客,可以了解到线性表的一些大致特征,这篇博客主要就是来了解线性表中的栈和队列。栈的特点是“先进后出”,队列的特点是“先进下先出”
2023-05-24 21:38:05
496
31
原创 数据结构初阶(用C语言实现简单数据结构)-- 顺序表和链表
顺序表分动态和静态的,一般会使用动态顺序表,因为静态顺序表具有一定的局限性。链表一共有三种大分类(单或双、循环或非循环、带头或不带头),分别组合链表就一共有八种结构,但是我们一般常用两种结构(无头单向非循环链表带头双向循环链表),而带头双向循环链表看起来难实现,但是增删查改的实现非常方便。
2023-04-26 10:59:24
584
23
原创 C++学习之路(C++初阶)--命名空间
C++的由来C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(objectoriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。
2023-04-16 12:32:41
434
26
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人