自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 收藏
  • 关注

原创 【c++复习笔记】——智能指针详细解析(智能指针的使用,原理分析)

💂 个人主页:努力学习的少年🤟 版权: 本文由【努力学习的少年】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦

2022-04-03 20:20:53 42043 25

原创 【c++11特性】——static_cast,dynamic_cast,const_cast,reinterpret_cast解析

C++提供了四种主要的强制类型转换运算符,用于进行类型之间的显式转换,这种显示类型转换更直接明显,能够一眼看出是什么类型转换为什么类型,容易找出程序中的错误;可清楚地辨别代码中每个显式的强制转;可读性更好,能体现程序员的意图

2023-10-04 20:15:38 614 1

原创 【设计模式】——策略模式

策略模式(Strategy Pattern)是一种行为型设计模式,它允许在运行时选择算法的行为。策略模式的核心思想是将不同的算法封装成独立的策略类,并使这些策略类可以互相替换,从而使客户端代码不依赖于具体的算法,增加了代码的灵活性和可维护性

2023-10-03 16:37:00 680

原创 【设计模式】——观察者模式

观察者模式是一种行为设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新

2023-09-26 12:02:01 670

原创 【网络云盘客户端】——项目简介

网络云盘客户端时基于QT/C++框架实现了一个网络云盘客户端软件,主要功能包括用户的注册,登录,显示用户的个人文件列表,以及文件的上传,下载,删除,共享文件。

2023-08-26 17:26:09 625

原创 【Redis】——Redis基础的数据结构以及应用场景

Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景。,Redis 还支持事务 、持久化、Lua 脚本、多种集群方案(主从复制模式、哨兵模式、切片机群模式)、发布/订阅模式,内存淘汰机制、过期删除机制Redis 应用非常广泛,如 Twitter、暴雪娱乐、Github、Stack Overflow、腾讯、阿里巴巴、京东、华为、新浪微博等,很多 中小型公司也在使用;

2023-08-22 22:28:09 364

原创 【server组件】——mysql连接池的实现原理

数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成 一个连接池,由程序动态地对池中的连接进行 申请,使用,释放。

2023-08-14 06:05:08 661

原创 【Webserver】——线程池的原理,手写线程池

线程池是一种 利用 池化技术思想 来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的 创建和任务的执行 解耦开来。我们可以创建线程池来复用已经创建的线程来降低频繁创建和销毁线程所带来的资源消耗。

2023-08-07 18:22:37 784

原创 【Redis】——RDB快照

Redis 是内存数据库,但是它为数据的持久化提供了两个技术,一个是AOF日志,另一个是RDB快照:AOF 文件的内容是操作命令;RDB 文件的内容是二进制数据。

2023-08-05 02:14:25 759

原创 【Redis】——AOF持久化

AOF日志是防止redis 因为宕机而导致 缓存区中的数据丢失 一个 日志文件每当redis执行一条写命令的时候,就会将该命令记录 到AOF日志当中。当redis启动的时候,就会加载AOF日志中的所有指令,并执行这些指令

2023-08-05 00:52:47 788

原创 【MySQL】——常用接口API即相关函数说明

你必须使用mysql_real_query()而不是mysql_query(),因为二进制代码数据可能包含“\0”字符,而且,mysql_real_query()()将mysql_query()查询的全部结果读取到客户端,分配1个MYSQL_RES结构(上面有介绍),并将结果置于该结构中。读取数据,直至返回NULL,否则未读取的行会在下一次查询时作为结果的一部分返回,故经常我们使用。一旦完成了对结果集的操作,必须调用mysql_free_result()初始化检索,以便于后面一行一行的读取结果集,而它。

2023-08-03 19:18:50 2613 1

原创 【QT 网络云盘客户端】——登录界面功能的实现

2.验证服务器 和 端口号的格式,如果验证成功,将 服务器的 ip地址和 端口号写入到。1.点击 确定 按钮,获取服务器 ip 和端口号的 信息。1.客户端需要保存token,因为客户端接下来访问服务器。为了防止泄密,需要对用户名和密码进行二次加密,先进行desc加密,然后再进行base64加密。用户名,昵称,密码,确认密码,手机,邮箱。1.点击注册页面,将数据 输入 到。1.点击登录,获取用户名和密码。,比如说手机号只能由数字组成。cfg.json文件。conf.json文件。会校验 各个输入框中。

2023-07-28 23:50:25 918

原创 【QT 网络云盘客户端】——获取用户文件列表信息

如果文件数量大于0,则会getFileList获取所有文件的信息。显示到 QWidgetList窗口上。FileInfo是一个自定义文件结构体)m_fileInfoList中 中的所有。文件信息列表Json包是一个Json对象。将QListWidget设置为图标模式。获取到所有的文件信息后,就需要将。3.将获取的所有的文件信息保存到。图标 包含 图片和文件名。

2023-07-28 22:29:58 988

原创 【网络云盘客户端】——上传文件的功能的实现

1.双击”上传文件 “的 QListWidgetItem 或者 点击 “上传” 菜单项 都会弹出一个文件对话框2.在文件对话框选中对应的文件,保存所有文件的路径(在对话框中可以选中多个文件)3.将对应的文件存放到 uploadtask* m_uploadtask中(uploadtask 是一个上传文件队列类型)

2023-07-28 19:10:03 631

原创 【QT 网络云盘客户端】——实现文件属性窗口

当我们点击文件中的属性,则会弹出一个属性对话框:实现过程:0.。1.鼠获取鼠标选中的,它包含图标和文件名2.根据文件名找到对应的FileInfo对象ps:FileInfo是文件信息对象,在显示文件列表的过程中,就已经将每个文件的 文件信息保存到 QList m_fileInfoList3.将FileInfo对象 中的信息设置 进文件属性对话框中。

2023-07-28 04:11:26 1120

原创 【QT 网络云盘客户端】——主窗口界面的设计

widget是用来显示自定义标题栏的,stackWidget是可以用来显示多个页面。在stackedWidget添加3个页面,分别是 ”我的文件“,”共享列表“,”传输列表“,注意:stackedWidget 的新添页面不能够单独的删除它。

2023-07-28 02:40:04 769

原创 【QT】——QListWidget的使用

QListWidget 是qt中的列表框控件,它用于显示多个列表项,列表项对应的类是QListWidgetItem.列表项中可以同时包含图片和文字。

2023-07-18 23:26:01 7918

原创 【QT】——Base64加解密

示例:(原文)转换前:(二进制)转换为四个6Bit :(二进制)填充0:(二进制)

2023-07-15 00:56:35 1444

原创 【QT】——QT中HTTP通信的使用流程

Qt中的HTTP通信访问 API 是围绕 QNetworkAccessManager 对象构建的,该对象保存它发送的请求的通用配置和设置,一个 QNetworkAccessManager 实例应该足以满足整个 Qt 应用程序网络访问的需求。

2023-07-13 23:50:42 4452

原创 【QT网络云盘】——设计登录界面(手把手教学)

1.在项目中创建一个新的widget文件,步骤如下2.在新的ui界面中设计自定义标题栏步骤:1.点击窗口,在属性表中设置宽度。2.将控件拖放到窗口上,并对其水平布局,并删除掉按钮的文本3.进入各个按钮的样式表,将图片的 设置进 图片中;4.最终形成自定义标题框5.将标题框设置进主界面中将自定义的标题栏的类名 设置进去。选择对应的类,最后点击提升即可。点击运行代码,发现原先的标题栏还存在。

2023-07-13 23:10:57 3389

原创 正则表达式概念以及语法的使用

正则表达式(Regular Expression)和特殊字符(称为"元字符"),正则表达式。

2023-07-13 17:31:52 1829

原创 【QT】——基础窗口类QMainWindow

QMainWindow是标准基础窗口中结构最复杂的窗口,QMainWindow继承QWidget,他在QWidget的基础上提供了菜单栏,工具栏,状态栏。

2023-07-11 01:46:16 426

原创 【QT】——布局

Qt 窗口布局是指将中的一种处理方式。

2023-07-10 22:33:12 2798

原创 【QT】——QChartView,QChart,QValueAxis类的使用,折线图,柱状图,饼状图的实现

QAbstractSeries类是数据集合,主要子类为QLineSeries——折线类,在QChart中添加QAbstractSeries,才可以展示出数据,否则QChart只能展现坐标轴。QAbstractSeries为系列的基类,其下又分为 QXYSeries类(折线图、样条曲线图、散点图的基类)、QPieSeries类(饼状图)、QAbstractBarSeries类(条状图)// 1.1 添加单个数据 不推荐// 1.2 添加单个数据 不推荐// 1.3 添加多个数据 不推荐。

2023-07-10 16:30:53 7332 2

原创 【QT】——事件处理系统

QT 程序是事件驱动的,程序的每个动作都是由内部某个事件所触发。QT 事件的发生和处理 成为程序运行的主线,存在于程序整个生命周期。键盘事件: 按键按下和松开鼠标事件: 鼠标移动,鼠标按键的按下和松开拖放事件: 用鼠标进行拖放滚轮事件: 鼠标滚轮滚动绘屏事件: 重绘屏幕的某些部分定时事件: 定时器到时,比如设定一个定时器,定时器到时,则触发定时事件焦点事件: 键盘焦点移动进入和离开事件: 鼠标移入 widget 之内,或是移出移动事件: widget 的位置改变。

2023-07-07 22:09:15 1261 1

原创 【QT】——QJson类的使用

QJsonArray中的所有类型的操作,都需要统一为 QJsonValue 类型。在QT中,从文件中或从网络中读取的数据是 QJson的字符流,这种字符流则用QJsonDocument来表示。QJsonObject 封装了 Json 中的对象,在里边可以存储多个键值对.QJsonArray 封装了 Json 中的数组,在里边可以存储多个元素,Json中主要两种数据格式:Json数组,和Json 对象。toBinaryData()函数转化的效果;,不允许同时存储多个并列的根节点。在一个 Json 文件中。

2023-07-07 01:27:09 5118 2

原创 【QT】——定时器QTimer的使用

QTimer是QT框架中的定时器类型,它的使用方法如下:定义一个调用QTimer对象,调用start()函数启动定时器,则定时器则会周期性的发送一个timeout的信号

2023-07-06 02:37:11 3771

原创 【QT】——QWidget窗口类

QWidget 类是所有窗口类的父类 (控件类是也属于窗口类),QWidget 类的父类的 QObject, 也就意味着所有的窗口类对象只要指定了父对象, 都可以实现内存资源的自动回收.可以内嵌到其他窗口的内部,没有边框,需要指定父类窗口可以作为独立的窗口显示,有边框,不需要指定父类窗口。

2023-07-05 21:53:15 5010

原创 【QT】——多线程的使用

默认的线程在Qt中称之为窗口线程,也叫主线程,负责窗口事件处理或者窗口控件数据的更新子线程负责后台的业务逻辑处理,子线程中不能对窗口对象做任何操作,这些事情需要交给窗口线程处理主线程和子线程之间如果要进行数据的传递,需要使用Qt中的信号槽机制

2023-07-04 01:13:22 2405 2

原创 【QT】——TCP套接字通信

QTcpSocket 是一个套接字通信类,不管是客户端还是服务器端都需要使用。在 Qt 中发送和接收数据也属于 IO 操作(网络 IO).在QT框架中,都会维护一个读缓冲区和 写缓冲区,读操作是直接从 QT维护的 读缓冲区 和 写缓冲区直接读取。QT是 C++ 的一个框架,并且里边提供了用于套接字通信的类(TCP、UDP);这两个套接字通信类都属于网络模块 network。1.服务器的ui界面。

2023-07-03 19:24:50 2312

原创 【QT】——信号和槽

信号和槽是 Qt 特有的信息传输机制,是 Qt 设计程序的重要基础,它可以让互不干扰的 对象建立一种联系,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。

2023-07-01 22:58:38 2933 1

原创 【Linux系统命令】——平均负载分析,以及cpu的性能检测,进程上下文切换分析

所谓的上下文切换,就是把上一个任务的寄存器和计数器保存起来,然后加载新任务的寄存器和计数 器,最后跳转到新 任务的位置开始执行新任务。可以分为:进程上下文切换,线程上下文切换,以及中断上下文切换。

2023-06-24 01:24:26 3077 1

原创 【Git 教程】—git指令详细解析,上机操作,简单易懂

详细介绍git的指令基本概念,以及如何去操作我们的git,通过该文章基本可以使用git的使用

2023-05-08 16:33:55 956 1

原创 【c/c++编译工具】——Cmake的学习

目录简介1. Cmake的基本语法2. 常用指令3. CMake常用的变量4. CMake编译工程5. 构建方式6. 实战---CMake代码实战CMake是一个跨平台的安装编译工具,可以用简单的语句来描述所有平台的安装(编译过程)。CMake可以说已经成为大部分C++开源项目标配不同平台编译项目工程文件是不同的,如在Visual Studio下,需要msbuild文件,在linux下需要编写Makefile文件,所以一个工程在不同的平台需要编写多个编译文件。

2023-04-11 17:14:49 1400

原创 【c++设计模式】——模板方法模式

定义一个操作中的算法对象的骨架(稳定),而将一些步骤延迟到子类(定义一个虚函数,让子类去实现),template method使得子类可以不改变(复用)一个算法结构即可重定义该算法的某些步骤。

2023-02-11 21:12:35 727

原创 【c++实战项目】——云备份服务器

云备份服务器能够通过浏览器将文件上传到服务器上。并且随时可以通过浏览器进行查看并且下载,其中下载的过程支持断点续传。服务器上有热点管理模块,将非热点文件进行压缩存储,节省服务器的磁盘空间。

2022-12-10 09:33:14 1637 2

原创 环境搭建——安装gcc 7.3.1版本

云备份项目使用的某些库需要用到gcc 7.3.1以上的版本,所以在编写云备份项目的时候,需要先安装好gcc7.3.1版本.

2022-12-10 09:21:57 2341 1

原创 ⚡热点管理模块⚡

如果一个文件在连续一段时间内没有访问到,则该文件是一个非热点文件,否则位热点文件。在服务上上有两个目录,一个目录是backdir存储的是热点文件,一个目录是packdir存储的是非热点文件

2022-12-09 21:55:47 684

原创 ⚡配置文件管理模块⚡

在服务器上,存在一个配置文件Config.txt,它是按照Json字符串的格式存储的是云服务器中的配置信息服务器启动的时候,配置文件管理模块会将配置文件中的配置信息加载到服务器上.

2022-12-09 21:54:43 447

原创 ⚡通信管理模块⚡

当服务器收到浏览器的 get /listshow/ http/1.1请求时,服务器就会給浏览器响应一个文件展示页面,用户可以再这个页面上传文件或下载文件。当服务器收到浏览器的 个 get /download/文件名 http1.1请求时,服务器就会到backdir目录下或packdir目录下查找该文件,如果找到了,就将该文件发送給浏览器。当服务器收到浏览器的 个post /upload/ http1.1请求时,则浏览器将文件上传到服务器上,文件名和文件数据存储在http响应中,服务器则将该文件放入ba

2022-12-09 21:54:01 951

个人复习思维导图,包括c/c++,网络,Mysql

个人复习思维导图,包括c/c++,网络,Mysql

2023-08-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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