自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 仿muduo库实现one thread one loop式并发服务器

该项目目标是实现一个高并发的服务器。但并不是自己完全实现一个,而是仿照现有成熟的技术进行模拟实现。一些必备知识:线程、网络套接字编程、多路转接技术(epoll),另外还有一些小的知识,在本篇文章中会提前讲解。本项目主要分为多个模块来进行讲解,实际上就是一个个小的组件。通过这些组件,我们可以很快的搭建起来一个高并发式的服务器。

2024-03-19 18:57:48 1127

原创 Net2FTP网站搭建并结合内网穿透实现远程访问本地个人文件

文件传输可以说是互联网最主要的应用之一,特别是智能设备的大面积使用,无论是个人存储文件资料,还是商业文件流转,都有数据存储和传输的需求。有需求就有市场,相应的传输软件层出不穷,而这些软件也各有各的特色,在这些软件的加持下,我们可以轻松的将不方便携带的电脑转变成为数据存储中心,再配合cpolar内网穿透创建的数据隧道,就可以轻松构建专属的私有云盘。今天,笔者就为大家介绍,如何使用Cpolar内网穿透+Net2FTP,打造私人专属的文件共享网站。

2024-02-20 15:30:18 988 2

原创 Windows本地搭建SeaFile云盘服务并结合内网穿透实现公网远程访问

现在我们身边的只能设备越来越多,各种智能手机、平板、智能手表和数码相机充斥身边,需要存储的数据也越来越大,一张手机拍摄的照片都可能有十多M,电影和视频更是按G计算。而智能设备的存储空间也用的捉襟见肘。能存储大量文件的,最合适的也就是家用电脑了。但家用电脑又存在无法随时随地调阅文件资料的问题。但只要经过简单几步,就能让家里的电脑秒变随时随地调阅存取文件的私有云盘。今天,笔者就为大家介绍,如何使用两个简单软件,让家里的电脑变身安全高效的私有云盘。

2024-02-01 17:33:35 1146 5

原创 docker镜像详解

我们一直说docker镜像,那么docker镜像到底是什么呢?Docker image 本质上是一个 read-only 只读文件, 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。我们可以把 Docker image 理解成一个模板, 可以通过这个模板实例化出来很多容器。image 里面是一层层文件系统 Union FS。联合文件系统,可以将几层目录挂载到一起,形成一个虚拟文件系统。

2024-01-29 15:38:28 1294

原创 如何使用Python Flask搭建一个web页面并实现远程访问

Flask是一个Python编写的Web微框架,让我们可以使用Python语言快速实现一个网站或Web服务,本期教程我们使用Python Flask搭建一个web问答应用程序框架,并结合cpolar内网穿透工具将我们的应用程序发布到公共网络上,实现可多人远程进入到该web应用程序访问。在操作上我们将使用HTML来创建网页的结构,然后使用css设计这个结构并且使其看起来更漂亮,此外还会利用Javascript与页面上的不同元素进行交互,最后使用python与web服务器(也成为后端)进行连接。

2024-01-29 15:37:46 1842 6

原创 JuiceSSH结合内网穿透实现移动端设备公网远程访问Linux虚拟机

在手机端,我们下载JuiceSSH,软件,下载软件可以在网上搜索下载,下载后打开软件,我们可以看到快速连接,点击快速连接。打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的。然后打开左侧在线隧道列表,查看刚刚创建隧道后生成的tcp连接的公网地址,这个公网地址就是我们需要用来连接的地址。可以看到,连接成功,一个固定的且不会变化的远程访问地址就设置好了,哪怕我们下次连接,地址也是不会发生变化。成功启动cpolar服务后,我们浏览器上使用。

2024-01-25 15:08:25 1519 38

原创 docker镜像仓库详解(Docker Registry)

本片文章主要是对docker的镜像仓库进行了详解。其中包含了一些常用了 docker 指令,通过举例进行详解。也详细解释了镜像仓库的工作机制和常见的镜像仓库。也实际拉去和运行了一些镜像。希望本篇文章会对你有所帮助!

2024-01-04 21:34:21 3211 17

原创 docker入门概念详解

本篇文章对docker的一些基础概念和周边概念进行了详细解释。帮助你可以很好的理解docker是用来干什么的,docker是怎么工作的。其中有docker所运用到的技术解释,docker的不同发展版本,dokcer的架构,docker的生态等等详解。

2023-12-29 17:51:36 2601 13

原创 [MySQL] MySQL中的事物

本片文章对MySQL中的事物进行了详解。其中包含了事物的特性、为什么要有事物、查看事物版本支持、事物常见操作、事物的隔离界别等等内容进行详细举例解释。同时还深入讲解了事物的隔离性,模拟实现MVCC多版本并发控制,也讲解了RR和RC的本质区别。总结:其中隔离级别越严格,安全性越高,但数据库的并发性能也就越低,往往需要在两者之间找一个平衡点。不可重复读的重点是修改和删除:同样的条件你读取过的数据再次读取出来发现值不一样了。幻读的重点在于新增(insert):同样的条件,第1次和第2次读出来的记录数不一样。

2023-12-26 15:48:32 1304 43

原创 C/C++ 连接访问 MySQL数据库

本篇文章主要讲解使用C语言连接MySQL数据库,当然在C++中也能够使用,因为C++兼容C语言的。 前面我们已经讲述了MySQL的基础使用,现在我们来看一下如何使用语言来操作数据库。在实际开发中,语言连接MySQL是为了能够在编程语言中与MySQL数据库进行交互和操作。大部分情况我们都是通过语言连接MySQL,建立与MySQL数据库的连接,可以向MySQL数据库发送更新请求,如插入、更新或删除数据。

2023-12-23 21:14:44 1304 6

原创 [MySQL] MySQL中的用户管理

MySQL中的用户管理是指对数据库用户进行创建、授权、修改和删除等操作的过程。用户是MySQL数据库的访问身份,它们定义了连接到数据库的权限和限制。MySQL中也是有root用户和普通用户之分的。跟Linux一样,root用户就是所谓的超级用户,权限较大且基本上没有限制。普通用户都是我们自己后期创建的,权限相对较小且较多限制。

2023-12-20 10:00:00 596 7

原创 [MySQL] MySQL中的内外连接

在MySQL中,连接(Join)是用于在多个表之间建立关联关系的操作。内连接(Inner Join)和外连接(Outer Join)是最常见的连接类型。

2023-12-19 11:38:09 396 8

原创 [MySQL] MySQL中的索引

在MySQL中,索引是一种数据结构用于提高查询效率和加速数据检索。创建索引可以加快数据库中表的查询操作,减少查询所需的时间和资源消耗。但是天下没有免费的午餐,。所以它的价值,在于提高一个海量数据的检索速度。到这里你可能依然对索引的概念是一种模糊的状态,后文我们会详细解释。看会此篇文章再来回头看索引的概念,相信你就会理解了。

2023-12-13 20:06:11 1527 41

原创 [MySQL] MySQL复合查询(多表查询、子查询)

前面我们学习了MySQL简单的单表查询。但是我们发现,在很多情况下单表查询并不能很好的满足我们的查询需求。本篇文章会重点讲解MySQL中的多表查询和一些复杂查询。希望本篇文章会对你有所帮助。

2023-12-08 13:23:50 3092 59

原创 [MySQL] MySQL中的内置函数

本篇文章主要是对MySQL中常见的内置函数进行了详细解释。例如有日期类函数、字符串类函数、数学类函数等等。希望本篇文章会对你有所帮助。

2023-12-07 15:26:17 829 29

原创 [MySQL] MySQL 表的增删查改

本篇文章对mysql表的增删查改进行了详细的举例说明解释。对表的增删查改简称CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)。其中重点是对查询select语句进行了详细解释,并且通过多个实际例子来帮助你的理解。希望本篇文章会对你有所帮助。

2023-11-23 19:29:46 1854 52

原创 [MySQL] MySQL表的约束

表的约束很多,这里主要介绍如下几个:null/not null、default、comment、zerofill、primary key、auto_increment、unique key、foreign key。在前面的文章中提到了约束,是通过数据类型对字段产生的约束。但是数据类型约束很单一,需要有一些额外的约束,更好的,从业务逻辑角度保证数据的正确性。于是就引入了表的约束。

2023-11-18 15:43:41 2255 113

原创 [MySQL] MySQL中的数据类型

在MySQL中,数据类型用于定义表中列的数据的类型。在前面的几篇文章中,我们也会看到有很多的数据类型,例如:char、varchar、date、int等等。本篇文章会对常见的数据类型进行详细讲解。超级详细结合实例,希望会对你有所帮助。具体如下图:我们再来插入一些数据,具体如下图:通过上图可以看到,再插入数据时我们可以从set集合中一次选多个数据进行插入,也可一次只选一个数据。set集合设定只是提供了若干个选项的值,最终一个单元格中,设计可存储了其中任意多个值;

2023-11-14 20:07:04 1579 47

原创 Linux下的文件系统

文件可以被分为两种:内存文件(打开的文件)、磁盘文件(未被打开的文件)。在Linux操作系统中,内存文件和磁盘文件是两种不同的概念,它们在系统中的作用和存储方式都有所不同。下面将对这两种文件类型进行详细的解释和举例。通俗的理解内存文件:我们通常对文件进行读写时,都是需要先将文件打开,也就是加载到系统的内存中。同时对打开的文件创建对应的数据结构。,内存文件详解可参考文章(

2023-11-13 19:30:14 467 15

原创 [MySQL] MySQL表的基础操作

本文章主要对表的操作进行的详细讲解,下面对本文章所用到的语句进行一个简单的总结。field1 datatype1 [COMMENT '注释信息'],field2 datatype2 [COMMENT '注释信息'],field3 datatype3 [COMMENT '注释信息'])[CHARSET=字符集] [COLLATE=校验规则] [ENGINE=存储引擎];DESC 表名字;ALTER TABLE table_name RENAME [TO] 新表名字;

2023-11-12 19:55:57 764 44

原创 [MySQL] MySQL库的基础操作

本篇文章对数据库的创建、修改、删除等操作进行了距离详细解释。通俗易懂,超级简单。数据库的基本语句我们还是必要掌握的。这些也都是数据库入门基础必学的。下面文章我们再来详细解释一下数据库中的表的一些操作。

2023-11-09 19:41:15 1640 35

原创 【实战项目】高并发内存池(下)

本片文章主要是对高并发内存池实现的详解。​我们上篇文章(高并发内存池(上))介绍了向高并发内存池申请资源的整个过程,本篇文章我们将会对申请后的空间资源释放的整个流程。同时也会对我们自己实现的内存池进行性能测试和优化。​

2023-10-25 08:16:00 2119 88

原创 【实战项目】高并发内存池(上)

​本篇文章是实现一个高并发的内存池,他的原型是google的一个开源项目tcmalloc(tcmalloc源码),tcmalloc全称Thread-Caching Malloc,即线程缓存的malloc,是一种用于内存分配和管理的内存分配器(内存池)。这个项目旨在提高多线程应用程序的性能,实现了高效的多线程内存管理。

2023-10-23 15:11:38 1295 117

原创 【计算机网络】IP协议详解

网络层的IP协议主要负责从一台主机到另一台主机的数据传输提供决策。网络层并不会真正的传输数据。真正负责数据或者对数据进行传输的是数据链路层。在传输的过程中会有很多的细节问题,在下篇文章我们会对数据链路层能进行详细解释!

2023-10-14 11:43:41 3343 132

原创 【计算机网络】TCP协议与UDP协议详解

TCP的面向字节流是指它将数据视为连续的字节流,而不是将数据划分为离散的消息或数据包。这意味着在TCP连接中,数据被视为一系列无结构的字节,发送方和接收方之间没有明确的消息边界。这与UDP不同,因为UDP是面向数据报的,每个数据包都是独立的单元,有明确的边界。数据连续性TCP:数据在TCP连接中被视为一个无间断的字节流。发送的数据可以被拆分成多个小块,然后在接收端重新组装,但这一切都在传输层进行,上层应用程序不需要关心数据的分段和重组。

2023-10-11 11:21:44 3193 100

原创 【计算机网络】TCP三次握手四次挥手(超级详细)

TCP使用三次握手和四次挥手来建立和终止连接。为什么建立和终止连接还需要这么麻烦呢?TIME_WAIT状态都有那些细节?不使用三次握手行不行啊?等等问题细节都进行了详解!!!赶快进来参观吧!

2023-10-08 09:45:00 3464 117

原创 【计算机网络】HTTPS协议详解

HTTPS协议是对HTTP协议的一种扩展,它在HTTP的基础上加入了SSL/TLS协议进行数据加密和认证。这使得通过HTTPS传输的数据更加安全可靠通过使用HTTPS协议,数据在传输过程中得到了保护,有效防止了恶意攻击者窃听、篡改或伪造数据。这使得HTTPS成为保护网站安全和用户隐私的重要工具。首先什么是加密?加密的过程是什么?怎么将数据就保护起来了?后文会一一进行详细解释的。数据摘要(也称为数字指纹)是指通过一种算法将任意长度的数据转换成固定长度的二进制字符串。

2023-10-05 13:03:34 3647 124

原创 【计算机网络】HTTP协议详解(举例解释,超级详细)

假设你使用Web浏览器(例如Chrome)访问一个网页。当你在浏览器中输入网址并按下"Enter"键时,浏览器会向服务器发送一个HTTP请求。HTTP协议是一种用于在Web浏览器和Web服务器之间传输数据的应用层协议。它具有无状态、基于请求-响应模型、支持多媒体、可用于缓存、简单灵活等特点。

2023-10-03 10:40:28 2262 132

原创 网络基础入门(网络基础概念详解)

本篇文章主要是对网络初学的概念进行解释,可以让你对网络有一个大概整体的认知。网络是指将多个计算机或设备通过通信线路、传输协议和网络设备连接起来,形成一个相互通信和共享资源的系统。网络互联:把多台计算机互相连接起来,进行互相传输数据,进而完成数据共享。没有网络之前的你:在没有网络的情况下,数据也可以传输。可以通过使用数据线将两台设备(如计算机、手机或存储设备)直接连接在一起,可以实现数据传输。或者通过使用磁带或光盘等媒介来进行数据传输。不过这样传输的成本比较高。什么是报头呢?在计算机网络通信中,

2023-10-01 17:56:12 1410 31

原创 【Linux从入门到精通】多线程总结(线程池、线程安全问题和常见锁)详解

本篇文章主要是对线程池进行详解。同时引出了单例模式的线程池,也对线程安全问题进行了解释。其中包含了智能指针、STL容器、饿汉模式的线程安全。也对常见的锁:悲观锁(Pessimistic Locking)、乐观锁(Optimistic Locking)、互斥锁(Mutex Lock)、读写锁(Read-Write Lock)、自旋锁(Spin Lock)和条件变量(Condition Variable)进行了讲解。重点对读写锁进行了讲解。希望本篇文章会对你有所帮助。

2023-09-29 13:01:22 686 20

原创 【Linux从入门到精通】信号量(信号量的原理与相关操作接口)详解

本篇文章重点对信号量的概念,信号量的申请、初始化、释放、销毁等操作进行讲解。同时举例把信号量应用到生产者消费者模型来理解。希望本篇文章会对你有所帮助。信号量(Semaphore)是操作系统中一种用于实现线程间同步与互斥的机制。它本质就是一个计数器,用于控制多个线程对共享资源的访问。信号量可以被视为一个简单的整数变量,并且可以进行原子操作,包括等待(wait)和释放(signal)。

2023-09-24 12:24:41 510 30

原创 Ubuntu安装RabbitMQ server - 在外远程访问

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

2023-09-21 18:08:47 1530 40

原创 单例模式(饿汉模式 & 懒汉模式)与一些特殊类设计

单例模式是一种设计模式,用于确保在整个应用程序中只存在一个特定类的实例对象,该实例对象被所有程序模块共享。其主要目的是限制类的实例化操作,以确保在任何情况下都只能获得同一个实例。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息,这种方式简化了在复杂环境下的配置管理。设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。为什么会产生设计模式这样的东西呢。

2023-09-20 20:03:16 756 4

原创 ​生产者消费者问题(互斥锁和条件变量的结合)

本篇文章对生产者消费者(模型)问题进行了详解。其中给出了基于阻塞队列的生产者消费者模型demo代码和对涉及到的条件变量与互斥锁的操作也进行了详细解释。解释了条件变量等待时,为什么还需要一把锁的问题。对生产者消费者(模型)问题进行总结,且解释了生产者消费者(模型)问题效率提升的所在。希望本篇文章会对你有所帮助。

2023-09-19 14:34:53 636 44

原创 内网穿透工具 Cpolar 帮您实现用友U8 Cloud 的外网部署,一键畅享云端ERP

用友U8 Cloud是用友公司推出的一款云端ERP解决方案。它以云计算技术为基础,为企业提供全面的企业资源管理解决方案,涵盖了财务会计、采购管理、销售管理、生产制造、人力资源等多个领域。云端部署:U8 Cloud基于云计算技术,企业无需自行搭建硬件设施和维护软件,只需通过网络即可访问和使用系统,降低了IT投入和运维成本。全功能覆盖:U8 Cloud提供财务会计、采购管理、销售管理、生产制造、人力资源等全面的企业管理功能,满足企业各个部门和业务的需求。

2023-09-18 14:02:41 739 94

原创 【Linux从入门到精通】线程互斥与互斥锁的使用与原理详解

上篇文章我们对线程 | 线程介绍&线程控制介绍后,本篇文章将会对多线程中的线程互斥与互斥锁的概念进行详解。同时结合实际例子解释了可重入与不被重入函数、临界资源与临界区和原子性的概念。希望本篇文章会对你有所帮助。

2023-09-16 12:06:53 700 21

原创 【Linux从入门到精通】线程详解(线程与进程区别)

当了解完线程的控制以后,我们先大概的总结一下线程的优缺点。创建一个新线程的代价要比创建一个新进程小得多。与进程之间的切换相比,线程之间的切换需要操作系统做的工作要少很多。线程占用的资源要比进程少很多。能充分利用多处理器的可并行数量。在等待慢速I/O操作结束的同时,程序可执行其他的计算任务。计算密集型应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现。I/O密集型应用,为了提高性能,将I/O操作重叠。线程可以同时等待不同的I/O操作。

2023-09-15 10:24:24 945 33

原创 快速搭建超轻量级图床——Cpolar+和树洞外链

随着软件技术和互联网技术的发展,网站的部署已经不再像以前那样高不可攀,在合适的软件帮助下,只要有最基本的电脑知识的普通人,也能轻松建立自己的网站,并使用这个网站作为私人存储服务器使用。今天,笔者就为大家介绍,使用Cpolar+树洞外链,轻松快捷的搭建私人图床网站。树洞外链图床的外观很简洁,并且功能也较强大,最重要的是其体积小巧,能很好的减轻安装图床的设备的负担。

2023-09-14 16:58:20 880 71

原创 【Linux从入门到精通】信号(信号保存 & 信号的处理)

本篇文章接着信号(初识信号 & 信号的产生)进行讲解。本篇文章重点讲解了信号的保存与信号的处理过程。同时也解释了什么时候进行处理信号。举例详解,通俗易懂,快来围观吧!!!

2023-09-13 09:00:00 1126 37

原创 【Linux从入门到精通】信号(初识信号 & 信号的产生)

本篇文章对信号的概念进行了解释,同时详细解释了信号是怎么产生的。实例+详解。通俗易懂!!!并且知道了写信号的本质就是修该进程控制块内容等等。

2023-09-11 12:00:00 704 15

空空如也

空空如也

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

TA关注的人

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