自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】网络层 — IP协议

Linux网络层传输协议——IP协议详解

2023-04-06 08:45:00 1879 38

原创 【Linux】TCP相关实验验证

TCP相关实验

2023-04-02 08:30:00 547 9

原创 【Linux】传输层协议 — TCP协议

在进行网络通信时,一方发出的数据后,它不能保证该数据能够成功被对端收到,因为数据在传输过程中可能会出现各种各样的错误,只有当收到对端主机发来的响应消息后,该主机才能保证上一次发送的数据被对端可靠的收到了,这就叫做真正的可靠。

2023-04-01 09:00:00 941 33

原创 【Linux】传输层协议 — UDP协议

传输层协议UDP详解

2023-03-30 09:30:22 1200 32

原创 【Linux】应用层协议—http

HTTP(Hyper Text Transfer Protocol)协议又叫做超文本传输协议,是一个简单的请求-响应协议,HTTP通常运行在TCP之上。在编写网络通信代码时,我们可以自己进行协议的定制,但实际有很多优秀的工程师早就已经写出了许多非常成熟的应用层协议,其中最典型的就是HTTP协议。URL(Uniform Resource Lacator)叫做统一资源定位符,也就是我们通常所说的网址,是因特网的万维网服务程序上用于指定信息位置的表示方法。一个URL大致由如下几部分构成:http://表示的是协议

2023-03-28 16:04:49 1807 34

原创 【Linux】认识协议

当服务端调用accept函数获取到新连接并创建新线程后,该线程就需要为该客户端提供计算服务,此时该线程需要先读取客户端发来的计算请求,然后进行对应的计算操作,如果客户端发来的计算请求存在除0、模0、非法运算等问题,就将响应结构体当中的状态字段对应设置为1、2、3即可。比如现在要实现一个网络版的计算器,那么客户端每次给服务端发送的请求数据当中,就需要包括左操作数、右操作数以及对应需要进行的操作,此时客户端要发送的就不是一个简单的字符串,而是一组结构化的数据。定制结构体+序列化和反序列化。

2023-03-24 09:22:11 1455 45

原创 【项目设计】负载均衡在线OJ

实现了一个负载均衡式的在线OJ平台,用户可以在浏览器访问各个题目,在编辑区编写代码提交,后端对代码进行编译运行,最终为用户返回结果。OJ模块基于MVC结构,调用数据库将题目显示给用户,用户编写提交代码,OJ模块通过网络通信,负载均衡式地选择compiler模块服务器,将用户代码和测试用例组合,编译运行后将结果返回给用户。所用技术:开发环境:代码结构:项目核心是三个模块:编写思路:🍁4.1.2 log.hpp🍁4.1.3 util.hpp🍁4.1.4 makefile🍁4.1

2023-03-20 09:01:12 872 56

原创 【Linux】网络编程套接字(下)

网络套接字完结,正式步入网络学习

2023-03-17 09:24:15 2515 36

原创 【C++笔试强训】第三十二天

第三十二天笔试强训

2023-03-16 19:28:18 2949 5

原创 【Linux】网络编程套接字(中)

✨ ⭐️ 🌟 💫我们将TCP服务器封装成一个类,当我们定义出一个服务器对象后需要马上对服务器进行初始化,而初始化TCP服务器要做的第一件事就是创建套接字。TCP服务器在调用socket函数创建套接字时:如果创建套接字后获得的文件描述符是小于0的,说明套接字创建失败,此时也就没必要进行后续操作了,直接终止程序即可。说明一下:套接字创建完毕后我们实际只是在系统层面上打开了一个文件,该文件还没有与网络关联起来,因此创建完套接字后我们还需要调用bind函数进行绑定操作。绑定的步骤如下:由于TCP服务器初始化时

2023-03-15 09:04:50 2083 42

原创 【C++笔试强训】第三十一天

重新开始写笔试强训啦,第三十一天,继续坚持

2023-03-14 19:42:53 2615 9

原创 【Linux网络】网络编程套接字(上)

本地进程间通信的方式已经有管道、消息队列、共享内存、信号量等方式了,现在在套接字这里又出现了可以用于本地进程间通信的域间套接字,为什么会有这么多通信方式,并且这些通信方式好像并不相关?实际是因为早期有很多不同的实验室都在研究通信的方式,由于是不同的实验室,因此就出现了很多不同的通信方式,比如常见的有System V标准的通信方式和POSIX标准的通信方式。

2023-03-13 09:03:40 1427 33

原创 【Linux】网络入门

报头本质也是一种数据,报头一般是通过位段实现的,因此协议栈的每一层都有一个对应的位段来表示当前层的报头。

2023-03-10 08:54:38 1595 39

原创 【项目设计】高并发内存池(七)[性能测试和提升]

高并发内存池完结篇

2023-03-08 09:46:11 1894 29

原创 【项目设计】高并发内存池(六)[细节优化+测试]

【项目设计】高并发内存池(六)[细节优化+测试]

2023-03-07 09:29:10 2035 25

原创 【项目设计】高并发内存池(五)[释放内存流程及调通]

高并发内存池(五)[释放内存流程及调通]

2023-03-05 10:01:10 1741 61

原创 【项目设计】高并发内存池 (四)[pagecache实现]

[pagecache实现]

2023-03-02 11:08:01 1068 51

原创 【项目设计】高并发内存池(三)[CentralCache的实现]

高并发内存池CentralCache的实现

2023-03-01 09:04:00 662 33

原创 【项目设计】高并发内存池(二)[高并发内存池整体框架设计|threadcache]

高并发内存第二部解答

2023-02-26 09:47:32 975 46

原创 【项目设计】高并发内存池(一)[项目介绍|内存池介绍|定长内存池的实现]

本项目实现的是一个高并发的内存池,它的原型是Google的一个开源项目tcmalloc,tcmalloc全称Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替换系统的内存分配相关函数malloc和free。tcmalloc的知名度也是非常高的,不少公司都在用它,比如Go语言就直接用它做了自己的内存分配器。该项目就是把tcmalloc中最核心的框架简化后拿出来,模拟实现出一个mini版的高并发内存池,目的就是学习tcmalloc的精华。

2023-02-23 10:28:06 1215 43

原创 【Linux】线程池

线程池实现

2023-02-21 09:05:24 3257 37

原创 【Linux】信号量

🍁 🍃 🍂 🌿。

2023-02-15 10:06:13 1233 45

原创 【Linux】生产者消费者模型

🍁 🍃 🍂 🌿。

2023-02-13 16:20:27 1647 56

原创 【Linux】线程安全(万字详解)

等待的时候往往是在临界区内等待的,当该线程进入等待的时候,互斥锁会自动释放,而当该线程被唤醒时,又会自动获得对应的互斥锁。条件变量需要配合互斥锁使用,其中条件变量是用来完成同步的,而互斥锁是用来完成互斥的。pthread_cond_wait函数有两个功能,一就是让线程在特定的条件变量下等待,二就是让线程释放对应的互斥锁。

2023-02-06 10:27:32 1974 68

原创 【Linux】多线程详解(中)

🍁 🍃 🍂 🌿。

2023-02-02 10:14:28 2807 45

原创 【Linux】多线程详解(上)

在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程执行流。

2023-01-28 09:34:23 1039 53

原创 【Linux】进程信号万字详解(下)

理论上来说是可以的,因为内核态是一种权限非常高的状态,但是绝对不能这样设计。如果允许在内核态直接执行用户空间的代码,那么用户就可以在代码中设计一些非法操作,比如清空数据库等,虽然在用户态时没有足够的权限做到清空数据库,但是如果是在内核态时执行了这种非法代码,那么数据库就真的被清空了,因为内核态是有足够权限清空数据库的。

2023-01-13 09:15:01 1735 49

原创 【Linux】进程信号万字详解(上)

Linux信号详解

2023-01-10 09:15:23 6454 64

原创 【Linux】进程间通信(万字详解) —— 下篇

Linux进程间通信完结

2023-01-07 15:11:45 1616 47

原创 【Linux】进程间通信(万字详解) —— 上篇

Linux进程通信详解

2023-01-05 09:10:35 1398 46

原创 【C++进阶】IO流

C++IO流详解

2023-01-03 09:14:40 2846 50

原创 【C++进阶】类型转换

C++类型转换

2022-12-30 10:06:37 1771 58

原创 【C++进阶】特殊类设计

C++特殊类设计详解

2022-12-27 09:24:07 1109 36

原创 【html】圣诞节限定圣诞树

在圣诞节看一看英国的风景吧

2022-12-25 09:31:28 474 9

原创 【C++进阶】智能指针(万字详解)

C++智能指针详解

2022-12-24 10:13:24 591 38

原创 【C++进阶】异常详解

C++异常详细解答,下篇更新智能指针

2022-12-21 10:36:03 543 54

原创 【C++进阶】C++11新特性下篇(万字详解)

C++特性完结,下次会更新异常

2022-12-19 11:43:03 1374 50

原创 【C++进阶】C++11新特性上篇(万字详解)

C++11新增特性详解

2022-12-18 09:27:21 1071 51

原创 【C++进阶】哈希(万字详解)—— 运用篇(下)

哈希表的实现以及应用详解

2022-12-13 10:11:09 1410 65

原创 【C++进阶】哈希(万字详解)—— 学习篇(上)

C++哈希详解,下一篇会写哈希的实现以及运用

2022-12-09 16:52:07 2111 77

空空如也

空空如也

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

TA关注的人

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