自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 NAT、代理服务、内网穿透与五种IO模型

基础工作。

2026-05-19 17:41:03 490

原创 数据链路层相关学习

RP不是⼀个单纯的数据链路层的协议,而是⼀个介于数据链路层和网络层之间的协议。

2026-05-18 12:41:20 388

原创 网络层相关学习

按缺省路由条目,从eth0接口发出去。

2026-05-18 00:11:11 490

原创 传输层协议TCP

客户端收到服务器对结束报文段的确认,则进⼊FIN_WAIT_2。

2026-05-16 21:14:16 470

原创 传输层协议UDP

然而64K在当今的互联网环境下,是⼀个非常小的数字;如果我们需要传输的数据超过64K,就需要在应用层手动的分包,多次发送,并在接收端手动拼装。服务的生命周期就跟随会话,会话关闭,那么服务就关闭;所以我们要让服务自成会话,这就是守护进程化。但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序⼀致。TCP、UDP套接字都会继承它,在它的基础上,新增自己的特性。我们登录Xshell的过程,就是构建会话的过程。如果缓冲区满了,再到达的UDP数据就会被丢弃。发送信号,都是向一个组发送信号。

2026-05-14 10:15:10 474

原创 应用层协议HTTP

【代码】应用层协议HTTP。

2026-05-13 19:18:34 632 1

原创 网络基础概念

TCP / IP协议的本质是⼀种解决⽅案TCP / IP协议能分层,前提是因为问题们本⾝能分层截止到目前,我们还没接触过任何协议,但是如何朴素的理解协议,我们已经可以试试了OS源代码⼀般都是用C / C++语言写的📍 问题:主机B能识别data,并且准确提取a=10,b=20,c=30吗?回答:肯定是可以的!因为双方都有同样的结构体类型 struct protocol;也就是说,用同样的代码实现协议,用同样的自定义数据类型,天然就具有“共识”,能够识别对方发来的数据,这就是约定啊。

2026-04-22 12:44:17 435

原创 线程的同步与互斥

保证整个程序里,一个类永远只能创建唯一一个对象,不能 new 第二个出来(2) 单例模式的特点某些类,只应该具有⼀个对象(实例),就称之为单例;例如⼀个男人只能有⼀个媳妇;在很多服务器开发场景中,经常需要让服务器加载很多的数据(上百G)到内存中;此时往往要用⼀个单例的类来管理这些数据.

2026-04-20 22:27:30 371

原创 线程的概念和控制

映射到若干个不连续的物理内存页。

2026-04-18 22:42:56 389

原创 Linux进程信号

忽略此信号。

2026-04-14 23:00:16 398

原创 进程间通信

管道是Unix中最古老的进程间通信的形式我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”

2026-04-05 19:44:55 402

原创 库制作与原理

其实就是将我们程序的源代码翻译成CPU能够直接运行的机器代码。

2026-04-03 19:16:08 408

原创 Ext系列文件系统

下面用几张图总结,⼀张是画的,其他都是在网上找的.主要想从不同角度说明.

2026-03-28 21:16:21 407

原创 学习IO基础

pathname: 要打开或创建的⽬标⽂件flags: 打开⽂件时,可以传⼊多个参数选项,⽤下⾯的⼀个或者多个常量进⾏“或”运算,构成flags参数:O_RDONLY: 只读打开O_WRONLY: 只写打开O_RDWR : 读,写打开这三个常量,必须指定⼀个且只能指定⼀个问权限 O_CREAT : 若⽂件不存在,则创建它;需要使⽤mode选项,来指明新⽂件的访O_APPEND: 追加写返回值:成功:新打开的⽂件描述符失败:-1。

2026-03-24 14:16:44 393

原创 进程的控制

再例如除以0等操作也会返回错误码1。

2026-03-20 20:54:58 410

原创 进程的概念

答:是标志位,是位图;由MMU内存管理单元完成查表工作,这是个硬件,再CPU中,把虚拟地址输入这个结构,输出的是物理地址。

2026-03-08 13:55:19 385

原创 并查集(原理讲解+例题展示)

在学习树这个数据结构的时,讲到树的存储⽅式有很多种:孩⼦表⽰法,双亲表⽰法、孩⼦双亲表示法以及孩子兄弟表示法等。对⼀棵树⽽⾔,除了根节点外,其余每个结点⼀定有且仅有⼀个双亲,双亲表示法就是根据这个特点存储树的,也就是把每个结点的双亲存下来。并查集:是⼀种⽤于维护元素所属集合的数据结构,实现为⼀个森林,其中每棵树表⽰⼀个集合,树中的节点表示对应集合中的元素,根节点来代表整个集合。这是一道在洛谷上写的题目,所以使用全局的变量更加方便,根据输入要求,我直接把数组设置的足够大,那么就不用考虑越界的问题。

2026-03-05 21:58:06 394

原创 钻石收集者&是7倍数的最长子序列&Zuma

本篇是寒假的第二弹,虽然每天都有练习算法,但是假期的话想要挤出时间写博客还是比较紧张,还有Linux要学;今天就写了一道算法题,剩下的时间拿出来写博客吧!话不多说上成果!!!

2026-02-20 01:22:24 822

原创 动态规划-多重背包

今天是放寒假的重拾算法的第二天,渡过恐怖期末周后,这段期间都没怎么学习编程了,感觉自己又变成新兵蛋子了,趁寒假时间多,就多学学吧,这是寒假第一篇,争取寒假能写个十篇吧,话不多说上干货!!!

2026-01-26 17:00:01 601

原创 宽搜bfs与深搜dfs

今天这章因为期末周拖了几天,就算熬夜写也不能再拖到明天了;今日事,今日毕,最近的时间得好好安排下了/(ㄒoㄒ)/~~

2026-01-01 13:31:23 980

原创 bfs解决拓扑排序问题

今天又遇到一个熟悉又陌生的算法,因为才刚学两个多月将近三个月的算法,对于学过的知识还是忘记的太过迅速了;虽然用iPad做了笔记,但是收效甚微,所以用博客复习和巩固学过知识显得尤为重要,话不多说上素材!!!

2025-12-25 01:29:49 172

原创 前缀和与差分

前缀和与差分是一对关联性十分强的两个算法,都是对一段数组进行操作,一个是累加,一个是两两相减,话不多说上干货!!!

2025-12-22 12:03:55 490

原创 背包问题Ⅱ与二分问题

今天我对背包问题有了更深的理解,我一定要写下来,巩固自己的思路并且,遇到新的难题二分,不管了,干就完了!!!

2025-12-18 21:19:22 767

原创 背包问题Ⅰ与归并排序

今天是开始备考蓝桥杯的第一天,写完算法巩固题发现许多内容还是不扎实像那些常用的算法思路并不是用起来得心应手,所以写下这一系列,方便复习与总结。

2025-12-17 01:48:19 1064

原创 项目——扫雷

代码设计game.hgame.ctest.c。

2025-08-20 01:57:20 406 3

原创 C/C++内存管理与初阶模板

在申请自定义类型的空间时,new会调用构造函数,delete会调用析构函数,而malloc与free不会free一定会释放空间,而析构函数不一定会释放空间new的原理1. 调用operator new函数申请空间2. 在申请的空间上执行构造函数,完成对象的构造delete的原理1. 在空间上执行析构函数,完成对象中资源的清理工作2. 调用operator delete函数释放对象的空间new T[N]的原理。

2025-07-30 16:52:23 827 5

原创 C++中既重要又困难的部分—类和对象

class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前面或者后面加 _ 或者 m 开头,注意C++中这个并不是强制的,只是⼀些惯例,具体看公司的要求。

2025-07-28 16:14:14 956 9

原创 初识C++——开启新旅途

定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下面的rand不在冲突了C++中域有函数局部域,全局域,命名空间域,类域(四大域,很重要);域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。

2025-07-19 17:29:45 6648 10

原创 数据结构——堆

1、若 i>0 , i 位置结点的双亲序号: (i-1)/2;i=0 , i 为根结点编号,⽆双亲结点。3、 若 2i+2,右孩⼦序号: 2i+2 , 2i+2>=n 否则⽆右孩⼦。2、若 2i+1,左孩⼦序号: 2i+1 , 2i+1>=n 否则⽆左孩⼦。此处已经在下面文章中的详细讲解,各位可以跳转阅读。

2025-07-12 15:01:51 500 3

原创 数据结构—排序

基本思想:希尔排序法又称缩小增量法;先选定一个整数(通常是gap=n/3+1),把待排序数据分成各组,所有距离相等的数据分在同一组内,并对每一组内的数据进行排序,然后gap=gap/3+1得到下一个整数,再将数组分成各组,进行插入排序,当gap=1时,相当于直接插入排序基本思想:每一次从待排序的数据元素中选出最小和最大的一个元素,存放在序列的起始/末尾位置,直到全部待排序元素排完基本思想:是一种二叉树结构的交换排序方法;

2025-07-10 19:50:00 5851 5

原创 数据结构——二叉树

2025-07-06 17:14:41 291 4

原创 数据结构——队列

QueueNode是结点结构,其中包含数据元素和下个结点的指针Queue是队列结构,其中包含头尾两个结点的指针,目的是为了降低算法复杂度。

2025-07-04 21:33:13 271 2

原创 数据结构——栈

2025-07-03 12:21:29 349 1

原创 数据结构——双向链表

2>反之,创建一个临时指针tmp保存phead的下一个结点,并且寻找最后一个结点,保存最后一个结点前一个结点,释放最后一个结点,把前后结点连接。<2>反之,保存哨兵位的下一个结点,再连接前后结点。<1>只有哨兵位,创建一个新结点,并且连接前后结点。<1>只有一个哨兵位,则直接返回,不用进行操作。

2025-07-02 02:20:54 389 2

原创 数据结构——单项链表

2> 反之,创建临时指针tmp,循环直到找到pos的上一个结点,创建一个新结点tmp1,并且按照tmp->pos->tmp1的方式连接起来。<2>反之,创建两个指针,prev用来存储被删结点的上一个结点,ptail来寻找最后一个结点,再进行空间释放操作。<2> 反之,创建一个新结点,并且创建一个临时指针指向原来头结点的下一个结点,再接入这个结点。<1>当链表一个结点都没有时,直接创建一个结点,并且把指针*pphead指向这个新结点。<2>反之,创建一个临时结点ptail,找到最后一个结点,接入新的结点。

2025-07-01 01:22:49 399 1

原创 数据结构——顺序表

一开始为0,初始为四个字节;一开始非0,二倍增容。(2)dest处是value的数据,src为不是value的数据。=size,则把pos之后的数据向前移动一位。因为数组是STNode*类型,所以需要将arr置空。(1)若pos=size,则为尾删,直接size减1。先检查空间是否足够,足够则不用扩容,否则扩容。size减1并且把后面的数据全部往前移动一位。assert函数:判断指针是否有效。逻辑结构:线性(连续的一条直线)只用将有效数据个数size减一。(1)dest站岗;把所有的数据往后移动一位。

2025-06-29 00:33:03 212 1

原创 C语言复习(12)——编译、链接和预处理

在预处理内,直接被替换name:名字stuff:内容其中的parament-list是一个由逗号隔开的符号表,它们可能出现在stuff中注意:参数列表的左括号必须与name紧邻,如果两者之间有任何空⽩存在,参数列表就会被解释为stuff的⼀部分提示:所以⽤于对数值表达式进⾏求值的宏定义都应该⽤这种⽅式加上括号,避免在使⽤宏时由于参数中的 操作符或邻近操作符之间不可预料的相互作⽤在编译⼀个程序的时候我们如果要将⼀条语句(⼀组语句)编译或者放弃是很⽅便的。因为我们有条件编译指令常见的条件编译指令。

2025-04-25 15:34:41 1582

原创 C语言复习(11)——动态内存管理与文件操作

若我们想要使数据持久化保存,我们可以使用文件1、 磁盘(硬盘)上的文件是文件2、程序文件3、数据文件4、文件名5、 二进制文件和文本文件。

2025-04-24 13:59:06 1461

原创 C语言复习(10)——自定义类型

这个数字的单位是bite位。

2025-04-23 14:09:25 451

原创 C语言复习(9)——内存函数与数据在内存中的储存

特点:1、因为接受参数是void*类型,所以可以接受任意类型的数据;但是,在引用时必须强制类 型转换2、memcpy处理的是两块不重叠的内存数据的拷贝memmove可以同时处理重叠与不重叠两块内存的拷贝3、对于memcpy函数,能否处理重叠部分内存数据取决于编译器本身(vs2022可以)4、内存重叠的定义:是指两个或者多个内存区域有部分或者全部地址空间是相同的情况5、memcpy的模拟实现**防止出现内存重叠,创建两个数组,开辟两块空间区域。

2025-04-22 19:19:59 669

五种IO模型手写学习笔记

五种IO模型手写学习笔记

2026-05-19

NAT、代理服务、内网穿透手写笔记

NAT、代理服务、内网穿透手写笔记

2026-05-19

数据链路层相关学习手写笔记

数据链路层相关学习手写笔记

2026-05-18

网络层相关学习手写笔记

网络层相关学习手写笔记

2026-05-18

传输层协议UDP手写笔记

传输层协议UDP手写笔记

2026-05-14

传输层协议TCP手写笔记

传输层协议TCP手写笔记

2026-05-14

应用层协议HTTP手写笔记

应用层协议HTTP手写笔记

2026-05-12

网络基础概念-手写笔记

网络基础概念——手写笔记

2026-04-22

线程的同步与互斥手写笔记

线程的同步与互斥手写笔记

2026-04-20

线程的概念和控制手写笔记

线程的概念和控制手写笔记

2026-04-18

Linux进程信号手写笔记

Linux进程信号手写笔记

2026-04-14

进程间通信手写笔记与学习

进程间通信学习和手写笔记

2026-04-05

Ext系列文件系统......

Ext系列文件系统手写笔记

2026-03-27

基础IO手写笔记与资料

基础IO手写笔记与资料

2026-03-22

进程的概念-手写笔记&&课件

关于进程概念的笔记

2026-03-06

钻石收集者&是7倍数的最长子序列&Zuma

三道算法题的手写笔记

2026-02-20

动态规划算法-多重背包

动态规划算法-多重背包

2026-01-26

宽搜bfs与深搜dfs

BFS算法笔记

2025-12-31

宽搜bfs与深搜dfs

DFS算法笔记

2025-12-31

bfs解决拓扑排序问题

拓扑排序笔记

2025-12-24

***前缀和与差分***

算法笔记

2025-12-22

***前缀和与差分***

算法笔记

2025-12-22

背包问题Ⅱ与差分、二分问题

二分查找OJ笔记

2025-12-18

算法篇(1)-背包问题与归并排序

练习的归并排序问题的笔记

2025-12-17

算法篇(1)-背包问题与归并排序

练习的背包问题的笔记

2025-12-17

空空如也

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

TA关注的人

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