自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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模型高并发服务器——01_项目准备

该博客主要是针对项目内容进行一些知识预备,提前了解一些语法以及结构,方便后面模块的设计

2025-03-21 18:44:58 922

原创 Reactor模型高并发服务器——00_项目介绍

使用一个高并发组件即可搭建一个高性能服务器,在C++第三方库中的Muduo库就是高性能开源网络库,专为Linux多线程服务端程序设计。该库以事件驱动为核心,采用非阻塞IO和Reactor模式实现高并发处理,内部通过高效的epoll与多线程协作机制优化资源调度。那么这个项目就是仿照muduo库的实现方式,自己实现一个one thread one loop式主从Reactor模型高并发服务器组件,通过自己实现的高并发服务器组件,就可以简洁快速的完成一个高性能的服务器搭建,同时,实现过程中也能巩固网络通信知识。

2025-03-21 18:42:36 759

原创 站内搜索引擎——06_最后优化及结项总结

该项目虽然到这里已经完结了,但是还有许多可以优化和扩展的方向

2025-03-15 21:12:46 816

原创 站内搜索引擎——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

原创 Day4 C++算法题—11.盛最多水的容器&47.全排列Ⅱ

Day4 C++算法题分享及解析—11.盛最多水的容器&47.全排列Ⅱ

2025-03-07 22:04:50 946

原创 站内搜索引擎——02_正排与倒排索引构建

Boost搜索引擎第二个模块实现——正排与倒排索引构建模块

2025-03-06 21:53:55 1551

原创 Day3 C++算法题—202.快乐数&771.宝石与石头

Day3 c++算法题分享以及解析——202.快乐数&771.宝石与石头

2025-03-06 21:51:58 753

原创 Day2 C++算法题—LCR019.验证回文串Ⅱ&LCR072.x的平方根

C++算法题分享—验证回文串Ⅱ&x的平方根

2025-03-04 21:19:43 644

原创 Windows系统下VSCode扩展和用户数据目录位置更改

VSCode的扩展与用户数据都是默认存在C盘下的,但是由于C盘的空间有限,电脑在使用过程中系统很多文件会存进C盘中,致使C盘爆红,而且去清理C盘的时候不知道清理哪里,所以修改VSCode这两个数据文件的目录位置很有必要需要注意的是,VSCode并不支持自定义这两个文件夹的位置,所以需要使用其他方式去指定目录位置。

2025-03-04 21:18:17 1228

原创 Day1 C++算法题—525.连续数组&面试题17.19.消失的两个数字

525.连续数组和面试题17.19.消失的两个数字

2025-03-03 19:48:49 705

原创 站内搜索引擎——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关注的人

提示
确定要删除当前文章?
取消 删除