自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络协议全景:Linux环境下的TCP/IP、UDP

UDP即用户数据报协议是在传输层的一个无连接协议,UDP具有简单的报头格式和面向数据报的特点,特别适合对延迟敏感但容忍丢包的应用场景,如视频流、语音通信和在线游戏。TCP(传输控制协议),提供可靠的、面向连接的通信服务。它通过建立连接、数据传输和连接终止的机制,确保数据能按顺序、无差错地从一端传送到另一端。

2024-09-17 19:38:11 1899 6

原创 基于Boost库的搜索引擎开发实践

private:// 构造函数,初始化 jieba 分词器{}// 禁用拷贝构造函数public:mtx.lock();// 加锁,保证线程安全// 初始化停止词映射表if (!return;in.close();// 对字符串进行分词,并移除停止词// 使用 jieba 进行搜索模式分词it!) // 遍历分词结果if (temp!// 移除该词elseit++;// 调用单例实例的分词方法。

2024-09-12 19:51:41 2427 9

原创 Linux系统中的HTTP协议

数据摘要是一种通过哈希函数对任意长度的数据进行处理后生成的固定长度的字符串。

2024-08-26 14:22:59 904 6

原创 Qt 实操记录:打造自己的“ QQ 音乐播放器”

当我们将完成的音乐播放器程序运行起来后:观察分析可得,主界面大致可分为几个部分:head(headleft和headright)和body(bodyleft和bodyright(层叠窗口和播放控制区域))。据以上可得head从左至右分别为一个logo、搜索框、换肤按钮、最小化、最大化、关闭按钮。可以用QLabel QLineEdit 和四个QPushButton实现:在headright中有一根垂直弹簧用来保证head在整个widget上保证一定的高度 不会被body过度挤压。logo的QSS优化

2025-03-18 14:14:01 943 2

原创 Linux高级I/O:多路转接模型

阻塞 I/O:在阻塞 I/O 模型中,当进程请求 I/O 操作时,它会被挂起,直到该操作完成。这种方式进程在等待 I/O 的同时不能做其他的事。非阻塞 I/O:非阻塞 I/O 允许进程发出 I/O 请求后立即返回,进程可以继续执行其他操作。为了检查 I/O 是否完成,进程需要通过轮询方式不断检查状态,所以也常称为非阻塞轮询IO,这种方式可以减少等待时间,但是在高频率轮询时很消耗cpu资源。I/O 多路复用。

2024-09-23 18:06:18 972 4

原创 Linux 网络套接字解析:实现网络通信

Linux网络编程套接字tcpudp

2024-08-18 13:32:51 1101 10

原创 深入理解Linux线程:从基础到进阶的全面指南

Linux线程解析,复习目录

2024-08-12 08:54:02 1157 10

原创 掌握 Linux 信号机制的技巧与策略

打印收到的信号和当前的pid。那又想到了,我们是否可以把所有普通信号都捕捉了呢?

2024-08-05 22:26:26 847 7

原创 Linux IPC解析:匿名命名管道与共享内存

进程间通信)是计算机系统中不同进程之间交换数据和同步操作的机制。由于现代计算机系统中,程序通常会由多个进程组成,这些进程可能需要相互通信以完成任务,因此IPC非常重要。数据交换:允许不同进程共享数据或传递信息。同步:协调多个进程之间的操作,以避免竞态条件和资源冲突。互斥:控制多个进程对共享资源的访问,确保同一时间只有一个进程能够访问资源管道(Pipes):匿名管道:用于相关进程之间的单向通信,如父子进程或兄弟进程。

2024-08-01 16:15:20 1492 3

原创 深入解析:inode、软硬链接与动静态库的奥秘

在Linux操作系统中,‘inode(索引节点)是文件系统的核心组件之一,用于管理文件和目录的元数据。每个文件和目录在磁盘上都有一个对应的inode`,它不包含文件的实际数据内容,而是记录了关于文件的关键信息。简单来说,在Linux系统中,一个文件,有一个inode。每一个inode都有自己的inode编号(inode的设置,是以分区为单位的,不能跨分区inode表示文件的所有属性文件名,并不属于inode内的属性!

2024-07-26 07:15:00 1605 3

原创 深入解析C++11:现代特性和应用

C++11是C++编程语言的一个重要版本更新,它在2011年被标准化。C++引入了进140个新特性,并且修正的大量的缺陷,使得C++编程更加高效和便捷。

2024-07-10 20:43:04 1275 5

原创 【面试经典150题】删除有序数组中的重复项||

删除有序数组中的重复项升级版

2024-06-03 21:17:17 557 2

原创 【面试经典150题】删除有序数组中的重复项

面试经典150题删除有序数组中的重复项

2024-06-02 12:03:54 474 3

原创 【面试经典150题】移除元素

面试经典150题移除元素

2024-06-02 11:55:07 357

原创 【面试经典150题】合并两个有序数组

合并两个有序数组

2024-06-01 16:33:37 429 1

原创 N皇后问题详解:回溯算法的应用与实践(dfs)

n皇后问题,dfs回溯法解决

2024-03-02 16:31:07 636 10

原创 深入剖析红黑树:优雅地平衡二叉搜索树

目录。红黑树和AVL树的插入效率O(logN),只是红黑树不像AVL追求如此平衡,所以旋转次数会少,并且实现也较简单。所以在实践中大都使用红黑树。之后我们还是使用**红黑树模拟实现map和set**。

2023-10-05 15:29:07 386 18

原创 搜索二叉树的算法解析与实例演示

随着移动智能设备的普及,各种各样的使用需求也被开发出来,从最早的移动听音乐、看图片(MP3时代),到之后的移动视频需求(MP4时代)到现在的移动流媒体需求(智能手机看视频)。但当我们习惯这些需求后,忽然发现自己不知不觉间成了待割的韭菜(3台设备就要加钱)。作为一颗倔强的韭菜,自然不会甘愿被割,因此打算自建一个私人影音媒体平台。现在,笔者就向大家展示,使用cpolar内网穿透+ Jellyfin,自建私人影音平台的全过程。

2023-08-27 14:06:31 320 11

原创 解密C++多态机制:发挥对象的多样性,实现更加智能的程序设计

重载:两个函数在同一作用域、函数名/参数相同重写:两个函数分别在基类和派生类的作用域、函数名/参数/返回值都必须相同(协变例外)、两个函数必须是虚函数隐藏重定义)两个函数分别在基类和派生类的作用域、函数名相同、两个基类和派生类的同名函数不构成重写就是重定义。

2023-07-27 20:31:38 508 22

原创 深度揭秘C++继承:理解面向对象编程的核心概念

子类成员将屏蔽父类对同名成员的直接访问,如下所示;

2023-07-26 15:40:49 796 22

原创 回顾类与对象:掌握String探索其模拟实现的沉浸式体验

算法、容器、迭代器、空间适配器、仿函数 、配接器。包含了里常用的基本数据结构和基本算法,在STL中体现了泛型化程序设计的思想。

2023-07-10 14:19:28 838 25

原创 构建无忧:探索 Linux 项目自动化构建神器-make/Makefile

编写Makefile是Linux开发中一项重要的技能,熟练的运用这个工具能提高编译效率,帮助你完成大型工程。Makefile带来的最大好处就是——自动化编译,一旦将Makefile文件写好,只需要一个make命令,即可完成预期的编译,大大提高了软件开发的效率。

2023-07-04 12:28:05 357 18

原创 从入门到精通:解锁Linux开发工具和编译器的力量

一.编辑器vim的使用1.vim的基本概念2.vim的使用二.编译器gcc/g++1.编译器的使用2.编译器是如何完成的?3.动态库与静态库

2023-07-02 13:34:49 569 31

转载 本地搭建CFimagehost私人图床【公网远程访问】

图片服务器也称作图床,可以说是互联网存储中最重要的应用之一,不仅网站需要图床提供的外链调取图片,个人或企业也用图床存储各种图片,方便随时访问查看。不过由于图床很不挣钱,各互联网大厂正在逐步关停所属的图床服务器,这也导致用户只能自己想办法,搭建自己的图床服务器。今天,笔者就为大家介绍,如何使用Cpolar+ CFImagehost,搭建简洁易用的私人图床。CFImagehost网站只是众多网站源码中的一种,我们还可以在本地设备上安装其他类型的网站源码,部署不同功能和应用场景的网站。

2023-06-03 09:49:13 1054 38

转载 公网使用SSH远程连接安卓手机Termux - Android手机服务器

使用安卓机跑东西的时候,屏幕太小,有时候操作不习惯。不过我们可以开启ssh,使用电脑PC端SSH远程连接手机termux。本次教程主要实现在安卓手机termux上安装SSH,在电脑上通过SSH远程连接Termux。同时在Termux上做内网穿透,用cpolar创建安全隧道映射22端口,实现在外也可以SSH远程连接Termux,无需公网IP,也不用设置路由器 ,这里使用国产内网穿透工具cpolar简单实现。

2023-05-30 18:58:06 1464 28

转载 Ubuntu安装RabbitMQ server - 在外远程访问

RabbitMQ是一个在 AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。由erlang开发的AMQP(Advanced Message Queue 高级消息队列协议 )的开源实现,由于erlang 语言的高并发特性,性能较好,本质是个队列,FIFO 先入先出,里面存放的内容是message,下面介绍通过在ubuntu+cpolar+rabbitMQ环境下,实现mq服务端远程访问。

2023-05-27 10:17:44 840 27

转载 【IIS建站教程】windows本地搭建web服务,内网穿透发布公网访问

在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类,为方便用户使用,还出现了XAMPP、PHPStudy、宝塔面板等等一系列集成服务,都是为了方便我们能快速建立网站。是不是不适用这些软件就无法建立网站了呢?答案当然是否定的,在Windows系统中实际上集成了建立网站所必须的软件环境。今天就让我们来看看,如何使用Windows自带的网站程序建立网站吧。

2023-05-23 07:36:37 3931 35

转载 Linux安装MongoDB数据库并内网穿透在外远程访问

MongoDB是一个基于分布式文件存储的数据库。由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。本次教程我们将在Linux centos服务器上安装部署Mongodb数据库,同时使用cpolar进行内网穿透,实现即使在外也可以远程连接访问Mongodb数据库。

2023-05-20 08:48:49 1665 45

转载 私有GitLab仓库 - 本地搭建GitLab私有代码仓库并随时远程访问「内网穿透」

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。

2023-05-16 07:52:39 4788 56

原创 全面解析Linux指令和权限管理

Linux权限和指令解析

2023-05-14 19:34:20 1781 39

转载 无云服务器,Linux本地快速搭建web网站,并内网穿透发布上线(1)

在web项目中,部署的web站点需要被外部访问,则需要一个媒介,通过把资源放在这个媒介中,再通过所暴露的端口指向这个站点,当外部访问这个媒介所对应的端口时,媒介指向站点,完成访问,像这种类似的媒介,常用的有tomcat容器、Apache等,这边使用Apache来建搭建。Apache2 是一种流行的 Web 服务器应用程序,也就是通常所说的运行网站的服务器,目前apache在centos已经改名,叫httpd。

2023-05-05 11:05:35 3998 87

原创 默认成员函数:详解类的隐式操作

(在不同的编译器上。

2023-05-01 16:24:29 679 33

转载 远程访问本地jupyter notebook服务 - 无公网IP端口映射

Jupyter Notebook,它是一个交互式的数据科学和计算环境,支持多种编程语言,如Python、R、Julia等。它在数据科学、机器学习、深度学习、教育和文档编写等领域都有很广泛的应用。重要的是,Jupyter Notebook可以在Web浏览器中使用,所以我们可以在服务器端开启服务,在外通过网页远程访问运行代码进行数据分析,拥有一个可以随时随地使用的科学计算环境,而无需在本地安装配置Python环境。

2023-05-01 08:00:00 1665 40

原创 掌握Linux指令和权限:一个入门教程

目录。

2023-04-22 14:42:23 923 25

原创 【开懂C++】引用与关键字auto

引用传参适合大部分的情况将引用返回值时需要注意。

2023-04-18 21:44:20 1370 45

原创 【开懂C++】命名空间 函数重载 缺省参数

如果同一工程下有相同名字的命名空间,他们会合并到一起。

2023-04-15 22:18:02 601 29

原创 【数据结构与算法】万字剖析八大排序(直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序)

八大排序详解

2023-04-12 12:51:58 1670 51

原创 【数据结构与算法】树与二叉树

除了之前我们讲的栈、队列、链表等线性结构,数据结构中还有着一对多的非线性结构———树。树是有n个结点组成的有限集,当n=0时为空树,在任意一颗非空树中,有且仅有一个特定的根结点;当n>1时,其余结点又可以分为一棵树,称为根的子树。如下图所示:二叉树是度为2的树,二叉树的子树有左右之分所以二叉树是有序树。

2023-04-03 08:15:35 744 41

原创 【数据结构与算法】堆与堆排序

堆是一种数据结构,首先它总是一颗完全二叉树(因为堆适合表示完全二叉树),在逻辑上堆是一颗完全二叉树,真正实现上是使用数组来实现的。根据不同的规则(任意根节点比左右孩子大或者小)区分出大根堆和小根堆。上图就是一个大根堆的演示,小根堆则相反。堆的底层逻辑就是数组,所以创建堆只需要先创建个数组。接着我们想通过数组建堆,就需要调整数据在数组中的位置。现在我们假设有一个乱序的数组:我们要将其调整为大根堆的情况,则需要从第二层左孩子开始向上调整。上图为数据26作为孩子节点大于其父节点15,则26与15 交换

2023-03-26 16:06:35 1120 18

原创 【数据结构与算法】队列和栈的相互实现以及循环队列

目录。

2023-03-25 15:27:59 869 45

空空如也

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

TA关注的人

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