- 博客(166)
- 收藏
- 关注
原创 【计算机网络】TCP协议可靠传输保证(序列号/确认应答机制、超时重传、最长消息长度、滑动窗口控制、拥塞控制)
窗口的大小就是在无需等待确认包的情况下,发送端还能发送的最大数据量。其实计算机的确认应答机制也是一样的,发送端发送信息给接收端,接收端会回应一个包,这个包就是应答包。在建立TCP连接的时候,双方约定一个最大的长度(MSS)作为发送的单位,重传的时候也是以这个单位来进行重传。但是在重发的过程中,假如一个包经过多次的重发也没有收到对端的确认包,那么就会认为接收端异常,强制关闭连接。并且通知应用通信异常强行终止。超时重传是指发送出去的数据包到接收到确认包之间的时间,如果超过了这个时间会被认为是丢包了,需要重传。
2024-04-07 09:59:57
1161
1
原创 【Mysql】事务管理特性(超详细介绍事务操作、回滚、隔离级别、隔离性理解)
事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MySQL提供一种机制,保证我们达到这样的效果。事务还规定不同的客户端看到的数据是不相同的。事务就是要做的或所做的事情,主要用于处理操作量大,复杂度高的数据。
2024-04-07 09:13:44
1575
原创 【计算机网络经典面试题】简述 TCP 三次握手和四次挥手的过程
2)服务端收到FIN包,回一个ACK包给客户端告诉它已经收到包了,此时还没有断开socket连接,而是等待剩下的数据传输完毕(此时客户端进入FIN-WAIT1状态)2)第二次握手:服务端收到客户端的SYN包,回一个ACK包(ACK=x+1)确认收到,同时发送一个SYN包(seq=y)给客户端。1)客户端发送FIN包(FIN=1)给服务端,告诉它自己的数据已经发送完毕,请求终止连接,此时客户端不发送数据,但还能接收数据。4)三次握手完成,成功建立连接,开始传输数据。
2024-04-07 09:13:14
694
原创 【Boost搜索引擎项目】项目思维导图+项目总结
该项目是基于Boost库实现一个搜索引擎功能,部署在Linux服务器上。支持多用户同时并发的访问服务器。用户可以通过浏览器访问服务器IP地址+端口号使用搜索引擎,通过搜索关键字获得想要的boost库信息。该项目大致逻辑如下:第一步、先去boots官网下载boost文档到云服务器上;第二步、对下载下来的html信息进行读取+去标签、数据清洗等处理,而后把处理好的数据放入指定指定文件目录下方便后续使用;第三步、根据关键字、或id构建正排倒排索引,这一步决定用户在搜索关键字的时候搜索结果排列的先后顺序;
2024-03-29 15:07:38
407
原创 【Mysql基础】Mysql索引操作
作为索引的基础: 在许多数据库系统中,主键通常会自动创建一个索引,这可以进一步提高数据检索的效率。因为主键是唯一的,并且通常与索引相关联,所以通过主键来查找特定行数据的效率通常会比使用其他列更高。主键在数据库中具有重要作用,它主要用于确保表中每行数据的唯一性,并提供一种快速有效的方式来定位和检索数据。唯一标识每行数据: 主键确保每行数据都具有唯一的标识,这意味着在表中不会有两行数据具有相同的主键值。总的来说,主键是数据库设计中的重要组成部分,它确保数据的唯一性、完整性,并提供了数据检索和关系建立的基础。
2024-03-29 15:06:59
635
原创 【STL】List容器介绍+相关练习题详细版本
list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。
2024-03-19 22:35:34
834
原创 【错误修复】cppjieba/QuerySegment.hpp:7:30: fatal error: limonp/Logging.hpp: No such file or directory
出现情况是使用第三方库cppjieba的时候缺失一个名为:limonp的文件所导致的,这个文件在官网也没有给出来,我们需要自己去下载拉拉取,下面是链接。我直接用git clone还拉不下来,我后面用了WinSCP这个工具把它弄到服务器的,相关使用可以自己搜索,实现的就是将本地的文件拖拽到服务器。后面存放在jieba.hpp相同的文件目录就通过了。
2024-03-19 16:09:26
570
原创 【C++基础】C++11新特性汇总介绍(超详细+代码例子)
语法的改进(1)统一的初始化方法(2)成员变量默认初始化(3)auto关键字 用于定义变量,编译器可以自动判断的类型(前提:定义一个变量时对其进行初始化)(4)decltype 求表达式的类型(5)智能指针 shared_ptr(6)空指针 nullptr(原来NULL)(7)基于范围的for循环(8)右值引用和move语义 让程序员有意识减少进行深拷贝操作标准库扩充(往STL里新加进一些模板类,比较好用)
2024-03-17 10:46:04
3871
原创 【STL容器】Set常规使用介绍补充
在 std::set 中,元素的值决定了元素在集合中的位置,集合中的元素是按照键值进行有序排列的。1.查找和去重:由于 std::set 中的元素是唯一的且有序的,因此非常适合用于需要查找和去重的场景。元素的顺序不可更改:std::set 中元素的顺序是根据键值决定的,并且在插入元素时会自动进行排序。总之,std::set 之所以不允许修改元素,是为了保证集合中元素的有序性和唯一性,以及保持集合内部数据结构的稳定性和性能。2.唯一性:std::set 中的元素是唯一的,即集合中不允许重复的元素存在。
2024-03-15 14:34:23
558
原创 【STL容器】Map使用介绍补充说明
map中的的元素是键值对map中的key是唯一的,并且不能修改默认按照小于的方式对key进行比较map中的元素如果用迭代器去遍历,可以得到一个有序的序列map的底层为平衡搜索树(红黑树),查找效率比较高支持[]操作符,operator[]中实际进行插入查找细节拓展:链接:C++中的map用法详解。
2024-03-15 14:31:52
498
原创 【Boost搜索引擎项目】Day2编写去标签和数据清洗模块
🌈欢迎来到C++项目专栏🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生🌏IP坐标:湖北武汉🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。
2024-03-06 14:50:31
368
原创 【STL】String浅拷贝问题
就是只是进行简单的指针拷贝,并没有进行值的拷贝,导致两个指针指向同一块内存空间,那么当代码走出作用域的时候,就会调用析构函数,导致同一块内存被释放两次,后面一次是失败的,出现野指针问题。来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。在编写string实现的时候没有实现strinig的拷贝构造,那么在使用的时候编译器就会使用默认的拷贝构造函数来处理,就出现了。如果一个类中涉及到资源的管理,其拷贝构造函数、赋值运算符重载以及析构函数必须要显式给出。
2024-03-06 14:31:41
375
1
原创 【C++基础】STL容器面试题分享||上篇
参考回答容器可以用于存放各种类型的数据(基本类型的变量,对象等)的数据结构,都是模板类,分为顺序顺序容器容器并非排序的,元素的插入位置同元素的值无关。包含vector、deque、list,具体实现原理如下:(1)vector 头文件动态数组。元素在内存连续存放。随机存取任何元素都能在常数时间完成。在尾端增删元素具有较佳的性能。(2)deque 头文件双向队列。元素在内存连续存放。随机存取任何元素都能在常数时间完成(仅次于vector)。
2024-03-04 18:04:05
1968
原创 【Boost搜索引擎项目】Day1 项目介绍+去标签和数据清洗框架搭建
对比常用搜索引擎,实现一个简易版的站内搜索引擎。基于boost库实现,boost库官网上是没有站内搜索引擎的,我们自己实现一个,部署在自己的云服务,客户端可以通过浏览器访问服务器地址,实现搜索引擎功能的使用。常用搜索引擎,如百度 搜狗等,搜索引擎框架可简易理解如上图,我们实现的站内搜索引擎对比就是把相关资料提前下载到云服务器本地,当用户使用搜索功能时,在服务器本地进行检索反馈。
2024-03-04 17:49:34
970
原创 【C++基础】了解仿函数
仿函数(Function Object),也称为函数对象,是在C++中表示可调用对象的概念。实际上,仿函数是一种类对象,它可以像函数一样被调用,因为它重载了函数调用运算符 operator()。具体来说,仿函数是一个类,它包含了一个或多个成员函数,其中最重要的是 operator()。通过实现 operator(),该类的实例就可以像函数一样被调用,而调用的过程就相当于调用了 operator()
2024-01-29 13:08:17
426
原创 【C++基础】类继承时,派生类对不同关键字修饰的基类方法的访问权限
类中的成员可以分为三种类型,分别为public成员、protected成员、public成员。类中可以直接访问自己类的public、protected、private成员,但类对象只能访问自己类的public成员。
2024-01-28 14:54:32
467
原创 【C++基础】析构函数和构造函数面试知识点总结
🌈欢迎来到C++基础专栏🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生🌏IP坐标:湖北武汉🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。
2024-01-28 14:46:31
938
原创 【C++基础】面向对象编程之重载、重写介绍
🌈欢迎来到C++基础专栏🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生🌏IP坐标:湖北武汉🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。
2024-01-28 13:58:49
1239
原创 【C++基础】C++内存处理机制面试题(以面促学 )
简单地说就是申请了一块内存空间,使用完毕后没有释放掉。(1)new和malloc申请资源使用后,没有用delete和free释放;(2)子类继承父类时,父类析构函数不是虚函数(3)Windows句柄资源使用后没有释放。那么什么是字节对齐?在C语言中,结构体是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构体、联合体等)的数据单元。在结构体中,编译器为结构体的每个成员按其自然边界(alignment)分配空间。
2024-01-26 16:13:08
1264
原创 【C++基础】Const关键字介绍(结合使用场景 一文搞懂Const关键字 附代码)
const 是C++中的关键字,用于声明常量或指定对象的只读性。它可以用在多种上下文中,包括变量、函数、指针等。可读性和清晰性:const 帮助标识常量,使得代码更易读和理解。它明确了某个实体(变量、指针、引用、成员函数等)的只读性。安全性:防止无意间的修改。通过使用 const,可以避免在程序中对不应该被修改的数据进行错误的修改。自文档性:const 的使用可以使代码更具自文档性,提供了对程序员和代码阅读工具的更多信息,减少了使用者犯错的可能性。
2024-01-26 15:32:11
623
原创 【C++基础】说说内联函数和宏函数的区别
2.1、使用时的一些注意事项:使用宏定义一定要注意错误情况的出现,比如宏定义函数没有类型检查,可能传进来任意类型,从而带来错误,如举例。还有就是括号的使用,宏在定义时要小心处理宏参数,一般用括号括起来,否则容易出现二义性inline函数一般用于比较小的,频繁调用的函数,这样可以减少函数调用带来的开销。只需要在函数返回类型前加上关键字inline,即可将函数指定为inline函数。同其它函数不同的是,最好将inline函数定义在头文件,而不仅仅是声明,因为编译器在处理inline函数时,需要在调
2024-01-25 14:49:35
639
原创 【C++基础】认识回调函数
函数指针的调用,即是一个通过函数指针调用的函数;如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,就说这是回调函数。即:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被调用执行,就叫做回调。如果代码立即被执行就称为同步回调,如果在之后晚点的某个时间再执行,则称为异步回调。比如:我们去“新白鹿”餐馆点餐,好多人排队正在等餐,你吃完了我才能进去吃,我就在哪儿一直等着…我也不急么;
2024-01-25 14:21:28
396
原创 【小工具分享】分享一个小工具---可视化数据结构 (初学者建议收藏)
支持大量数据结构地演示,相当全面,对于初学数据结构或者想更直观感受某个数据结构地实现有很大帮助,能直观的看到该数据结构的增删改查,帮助我们理解某一数据结构的性能~
2023-12-05 14:10:49
116
原创 【Mysql】一篇博客搞懂Mysql索引、全面剖析底层结构(建议收藏)
Page分为目录页和数据页。目录页只放各个下级Page的最小键值。查找的时候,自定向下找,只需要加载部分目录页到内存,即可完成算法的整个查找过程,大大减少了IO次数。
2023-12-05 14:01:04
238
原创 【Python基础】协程(迭代器、生成器、协程、gevent介绍)
🌈欢迎来到Python专栏🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生🌏IP坐标:湖北武汉🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。愿大家都能早日进大厂实现财富自由~
2023-11-29 15:35:16
136
原创 【算法训练营】算法分析实验(递归实现斐波那契+插入排序、分治思想实现归并排序+快排)附代码+解析
🌈欢迎来到算法专栏🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生🌏IP坐标:湖北武汉🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。愿大家都能早日进大厂实现财富自由~
2023-11-29 15:29:38
269
原创 【Python基础】多线程编程
有很多的场景中的事情是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的;试想,如果把唱歌和跳舞这 2 件事情分开依次完成的话,估计就没有那么好的效果了(想一下场景:先唱歌,然后在跳舞,O(∩_∩)O 哈哈~)
2023-11-23 15:37:07
207
原创 【Python基础】多进程编程(进程间通信 、进程池等附上实例代码)
程序:例如 xxx.py 这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源称之为进程,它是操作系统分配资源的基本单元。
2023-11-23 09:48:17
161
原创 【算法训练营】参数解析+跳石板
🌈欢迎来到Python专栏🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生🌏IP坐标:湖北武汉🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。愿大家都能早日进大厂实现财富自由~
2023-11-18 12:48:14
283
原创 【Mysql】复合查询详解+实战操作(多表查询、自链接、子查询等)
🌈欢迎来到Python专栏🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生🌏IP坐标:湖北武汉🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。愿大家都能早日进大厂实现财富自由~
2023-11-18 12:19:59
830
原创 【Mysql】关于数据库增删查改的一些在线OJ练习
🌈欢迎来到Python专栏🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生🌏IP坐标:湖北武汉🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。愿大家都能早日进大厂实现财富自由~
2023-11-16 14:40:11
258
原创 【Python基础】文件传输协议
🌈欢迎来到Python专栏🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生🌏IP坐标:湖北武汉🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。愿大家都能早日进大厂实现财富自由~
2023-11-14 11:30:30
186
原创 【Python基础】一个简单的TCP通信程序
愿大家都能早日进大厂实现财富自由~🙋🏾♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生。相关知识点在本人的计算机网络专栏有相关介绍 这里不多赘述~
2023-11-13 16:33:05
208
原创 【Python基础】网络编程之Epoll使用一(符实操:基于epoll实现的实时聊天室)
epoll”是输入/输出事件通知的系统调用。它是 Linux 内核提供的一项功能,用于有效处理大量文件描述符或套接字。“epoll”在需要监视许多 I/O 操作的情况下特别有用,例如在处理大量并发连接的服务器中。与“select”和“poll”等旧机制不同,“epoll”旨在随着文件描述符的数量而有效扩展。它特别适用于具有大量开放套接字的方案。‘epoll’ 是事件驱动的,这意味着当文件描述符上发生特定事件时,它可以通知您的程序。事件可以包括可供读取的数据、可供写入的空间或文件描述符上的错误。
2023-11-13 16:27:52
579
2
原创 【Python基础】基于UPD协议实现简易聊天室(Socket编程)
socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于Socket 来完成通信的例如我们每天浏览网页、QQ 聊天、收发 email 等等。
2023-11-10 14:58:35
624
原创 【python小游戏】飞机大作战源码分享(附完整源码+图片资源可直接运行)
【代码】【python小游戏】飞机大作战源码分享(附完整源码+图片资源可直接运行)
2023-11-09 16:21:24
1546
5
原创 【Python基础】Python文件操作介绍
• 在开发中,通常会先编写 打开 和 关闭 的代码,再编写中间针对文件的 读/写操作!• 频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以 只读、只写 的方式来操作文件。• 方法执行后,会把 文件指针 移动到下一行,准备再次读取读取大文件的正确姿势。• 注意:read 方法执行后,会把 文件指针 移动到 文件的末尾。• 当执行了read 方法后,文件指针 会移动到 读取内容的末尾。• 第一次打开 文件时,通常 文件指针会指向文件的开始位置。• 如果文件太大,对内存的占用会非常严重。
2023-11-09 13:17:14
108
原创 【Python基础】 模块和包的创建及使用(windows 下制作和发布压缩包超详细)
• name 属性可以做到,测试模块的代码 只在测试情况下被运行,而在 被导入时不会被执行!import 的方式。• 模块 就好比是 工具包,要想使用这个工具包中的工具,就需要先 导入 这个模块。如果 两个模块,存在 同名的函数,那么 后导入模块的函数,会 覆盖掉先导入的函数。• 在模块中定义的 全局变量 、函数、类 都是提供给外界直接使用的 工具。如果模块的名字太长,可以使用as 指定模块的名称,以方便在代码中的使用。• 在实际开发中,每一个模块都是独立开发的,大多都有专人负责。
2023-11-08 15:20:59
719
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人