- 博客(30)
- 收藏
- 关注
原创 Socket编程UDP-简单的聊天室
最后的全部代码我们服用了上一节的代码最后的样子结果是这样的一开始的框架是这样的 后续我们慢慢加~我们要实现的是如下图,就是一个简单的聊天室!
2026-11-08 21:22:45
139
原创 Socket编程UDP - 字典功能
需要用到上一节的代码,在此基础上进行修改代码在上面链接中,里面有gitee的连接里面有代码!这个是字典udp的代码。
2026-11-07 16:02:54
13
原创 Socket编程UDP
目录1. 我们首先要先打开网络文件 无论是tcp还有udp2. 填充网络信息3. 绑定 bind socket信息4. 启动服务器5. 编写client6.改进先定义好简单的框架然后编译一下封装了一个工具类 日志类 可直接使用 Logger类 直接使用就行不是重点使用日志类得使用封装的锁 Mutex.hpp我们先创建socket套接字 去丰富Server类运行结果的文件描述符必然是3!!!启动服务端一定需要服务端的ip地址和端口号!所以在构造函数进行初始化这有三个参数才能启动!!!这个在上一章最
2026-11-06 09:45:34
240
原创 网络基础概念
什么是协议呢?90年代那个时候网络还没那么发达,在学校一般是用打电话来联系家长,但是呢用这个打通电话会花钱,但是灵机一动和家里人“协议“ 好 铃声响一声是报平安,两声是没钱了,三声是有别的事需要打通细说!!总结就是,协议是一种约定!!!
2026-10-29 15:41:20
151
原创 Ext系列文件系统
其实硬盘是典型的“块”设备,操作系统读取硬盘数据的时候,其实是不会⼀个个扇区地读取,这样效率太低,⽽是⼀次性连续读取多个扇区,即⼀次性读取⼀个”块”(block)。硬盘的每个分区是被划分为⼀个个的”块”。⼀个”块”的⼤⼩是由格式化的时候确定的,并且不可以更改,最常⻅的是4KB,即连续⼋个扇区组成⼀个 ”块”。”块”是⽂件存取的最⼩单位。为什么OS不直接用扇区来访问磁盘呢?512 而是4KB呢1. 提高效率2. 软硬件解耦。
2026-10-26 00:01:28
179
原创 linux上使用git工具
当你的远端仓库可能有别人提交的信息的时候,我们需要先git pull 拉完才能提交。git config --global user.name '用户名'git config --global user.email '邮箱'push之后他可能会让你输入username 和 gitee的密码。git commit -m "提交日志"git push 把你的代码提交到仓库中。这个页面 先去配置邮箱和用户名!想办法将这个添加到你的目录里。把本地所有的修改添加到仓库中。commit 之后 就干净了。
2026-10-24 00:06:40
126
原创 多态的认识和使用(cpp)
实现多态的两个必要条件!!必须是基类的指针或者引⽤调⽤虚函数被调⽤的函数必须是虚函数,并且完成了虚函数重写/覆盖。如下是代码!!public:virtual void BuyTicket() { cout << "买票-全价" << endl;public:virtual void BuyTicket() { cout << "买票-打折" << endl;// 这⾥可以看到虽然都是Person指针Ptr在调⽤BuyTicket// 但是跟ptr没关系,⽽是由ptr指向的对象决定的。
2026-10-23 14:59:26
208
原创 双指针的使用(一)
cur遇到0 就往后扫描!遇到1之后,cur就需要把这个元素加入到前面那个【0,dest】这个非零区间因为非零区间要加入 所以非零区间的个数加1swap(cur,dest+1)同时 cur和dest都要往后移动!!遇到零cur往后移动!!!遇到非0 同上。
2026-10-21 00:23:19
187
原创 继承的认识和使用
在编译器中他们是会忽略掉person的构造函数 就是初始化Assistant a这个时候调用他的构造函数的时候会调用student和teacher的构造函数 他俩的构造函数就会忽略掉person的构造函数!派⽣类对象 可以赋值给 基类的指针 / 基类的引⽤,⽽不需要加const,这⾥的指针和引⽤绑定是派⽣类对象中的基类部分。你爹的很多东西都是你的以后,但是他的私房钱,他的手机这些私有的不是你的(狗头)派生类的成员 就是生成默认的构造,那基类的成员(整体)要调用基类的构造!组合是⼀种has-a的关系。
2026-10-20 18:51:31
31
原创 基础IO的认识
缓冲区是内存空间的⼀部分。也就是说,在内存空间中预留了⼀定的存储空间,这些存储空间⽤来缓 冲输⼊或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输⼊设备还是输出设备,分为输⼊缓冲区和输出缓冲区。我们有用户缓冲区和文件内核缓冲区我们平时写printf 之类的都是写在自己的用户缓冲区的 然后进程结束 或者写满 或者fflush刷新到文件内核缓冲区!!比如菜鸟驿站发火车送快递 一般是一发发一车,装满,如果就装几个就发车就很浪费资源了!!
2026-10-12 19:59:17
120
原创 力扣刷题之堆栈
如果只用一个栈的情况下栈中恰好最后一个元素是最小的,出栈了,那最小元素的更新那就要遍历一遍栈了。[1,2,3,4,5],[4,5,3,2,1] 第一个是入栈顺序,第二个是出栈顺序 i=0是入栈下标 j=0 是出栈下标。i=3,j=0 4入栈 4和4相比,相等 出栈之后此时就指向3了,因为pop了栈,j++ 此时指向5。上述是前三个元素入栈,因为每一个都比之前的最小元素小所以就min直接入栈。用的方法是去模拟他这个入栈出栈的过程,如果是符合的,那最后一定是空栈。i=0,j=0 1入栈 1和4对比,不相等。
2026-10-08 17:43:43
226
原创 自主shell
执行命令用的是通过fork子进程去执行我们需要执行的命令,在shell中我们使用命令都是通过创建进程去执行的,所以我们fork出子进程+execvp去执行程序!执行完,更改就退了父进程也看不到!父进程使用chdir变成新的路径,但是环境变量env没改!->> 当前进程---父进程bash!执行命令之后bash的子进程,所有的子进程都会进程父进程当前的工作路径!更改bash的工作路径,就是更改了后续执行所有指令(进程)的工作路径!自行去了解这个函数的用法!父进程执行的就是内建命令!
2026-09-27 10:29:04
205
原创 进程的控制
在linux中fork函数是⾮常重要的函数,它从已存在进程中创建⼀个新进程。新进程为⼦进程,⽽原进程为⽗进程。你有个印刷厂和食堂,这是你的产业,你生了个儿子,有一种情况,你让你的儿子继承你的产业和你一起做饭和印刷,也有另一种情况,老子要创业,我要执行自己的代码!!include<unistd.h>pid_tforkvoid返回值:⼦进程中返回0,⽗进程返回⼦进程id,出错返回-11.为什么要给⼦进程返回0,⽗进程返回⼦进程pid?2.为甚⼀个函数fork。
2026-09-21 16:11:33
203
原创 Linux进程信号
信号是外部或者其他人或者硬件给进程发送的一种异步的时间通知机制比如你在打游戏妈妈喊你吃饭这也算是信号但是,你妈妈喊你吃饭你就放下手中的游戏吗 也不好说基本结论:1. 识别信号是内置的,进程识别信号,是内核程序员写的内置特性。处理:1. 默认处理 -> 大部分是终止进程2. 忽略3. 自定义动作。
2026-09-11 22:21:26
165
原创 初识虚拟地址空间
大富翁跟每个私生子说我死掉之后给你我的所有资产!!!(画饼)但是实际上根本不会给他所有的,只是一点点给!!!1. 为什么全局变量,static变量生命周期是全局的?本质是生命周期随进程2. 常量字符串和代码为什么是只读的?本质是页表不让进程写!!!答案在下面解释一下首先来看看页表!!!如果访问的时候不存在那就需要去磁盘取调出来然后分配一段物理地址。
2026-09-09 17:25:04
224
原创 进程间通信--管道
1. 创建管道: 首先要判断是否存在管道,不能用open去判断,因为只打开了一端,因此会堵塞。只能用stat来判断。3. 读端在读,写端关闭,读端读完管道剩余数据,再读,就会读取“”,read返回0,表明读结尾。管道通信,前提是让不同进程看到同一份资源--> 文件 --> 文件的内核缓冲区---内存块。2. 子进程写得快,父进程不读,管道一旦被写满,子进程必须堵塞--> 让父进程读。1. 子进程写的慢,父进程要阻塞,等管道有数据,父进程才能读。4. 写端一直写,读端不读关闭fd,os会直接杀死写的进程。
2026-09-02 15:32:07
244
原创 软连接和硬连接
硬连接可以理解成别名 就是log.txt文件的小名叫a.txt用ln 文件 文件的小名 这样去创建硬连接 你看到第三行从1变成了2 就是有两个文件去指向921328这个inode结点,当这个计数从1变0了才算删除了文件,如果删除了log.txt文件还不算是删除 921328这个文件还没被删除。
2026-08-19 20:52:23
228
原创 Linux权限的概念
假设默认权限是mask,则实际创建的出来的⽂件权限是: mask & ~umask。要从普通⽤⼾user切换到root⽤⼾则使⽤ su root(root可以省略),此时系统会提⽰输⼊root⽤⼾的口令。执⾏(x/1):execute对⽂件⽽⾔,具有执⾏⽂件的权限;超级⽤⼾默认掩码值为。可写权限: 如果⽬录没有可写权限, 则⽆法在⽬录中创建⽂件, 也⽆法在⽬录中删除⽂件.可读权限: 如果⽬录没有可读权限, 则⽆法⽤ls等命令查看⽬录中的⽂件内容.⽂件和⽂件⽬录的所有者所在的组的⽤⼾:g---Group。
2026-07-07 20:31:35
178
原创 inline关键字的使用
⽤inline修饰的函数叫做内联函数,编译时C++编译器会在调⽤的地⽅展开内联函数,这样调⽤内联函数就需要建⽴栈帧了,就可以提⾼效率。因为inline被展开,就没有函数地址,链接时会出现报错。下面看到反汇编代码即可得到 Add2调用了call 说明是没有展开的是去调用 , 而Add是没有调用call是直接展开的。如果一个函数只有一两行代码,却被调用了成千上万次,那么调用函数的开销可能比函数实际执行的时间还要多。当然inline的调用是要看编译器,如果你加了inline同时代码很多的话也不会展开,
2026-06-11 21:13:26
202
原创 实现一个博客系统 (SSM 项目)
你小子我就知道你不爱看,我早就给你弄好了代码自取该类实现了 HandlerInterceptor 接口,用于在请求处理之前进行拦截。主要功能是检查用户是否已经登录,如果未登录则重定向到登录页面@Component@Override// 判断用户登录if(session!= null){// 用户已经登录// 代码走到此处说明用户未登录。
2025-03-06 16:27:23
665
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅