自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【计算机网络】:get与post

通过本文的介绍,我们深入了解了HTTP协议中GET和POST请求的核心区别,并通过C++实现了一个简单的HTTP服务器来演示这两种请求的处理方式。在实际开发中,我们应根据请求的语义和安全性要求来选择合适的请求方法,同时注意处理参数的方式和错误处理。希望这篇文章能帮助你更好地理解GET和POST请求,以及如何在C++中实现一个简单的HTTP服务器。

2025-06-16 15:35:40 914

原创 提升系统稳定性和可靠性的特殊线程(看门狗线程)

定期检查系统关键组件的运行状态当检测到异常(如无响应、死锁、资源耗尽)时触发恢复机制提供系统健康状态的实时反馈看门狗线程作为C++系统可靠性的重要保障,通过简单而有效的监控机制显著提升了系统的容错能力。监控粒度:合理划分监控组件,避免过度监控响应策略:根据异常类型选择合适的恢复措施(重启、降级、报警)性能开销:优化检查频率和处理逻辑,降低对系统的影响安全性:防止看门狗线程自身成为单点故障。

2025-06-03 19:23:01 943

原创 Cookie 和 Session:Web 身份验证的核心机制

定义:Cookie是服务器发送到客户端浏览器并存储在本地的一小段文本数据,格式为key=value,每次请求时会自动携带到服务器。核心作用存储用户身份标识(如session_id记录用户偏好(如语言设置、字体大小)实现购物车、历史记录等功能定义:Session是服务器端用于存储用户会话数据的机制,通过session_id与客户端Cookie关联。核心作用安全存储用户敏感信息(如登录凭证、权限数据)实现分布式系统中的会话共享。

2025-06-03 16:08:51 1074

原创 malloc 是如何分配内存的?——C 语言内存分配详解

/ 内存块头部结构// 内存块大小(不包含头部)// 是否空闲// 指向下一个内存块} MemBlock;// 全局内存池和头部指针// 初始化内存池// 分配大块内存if (!// 初始化第一个内存块// 分配内存if (!// 默认1MB内存池// 查找最佳匹配的空闲块if (!// 没有找到合适的空闲块if (!// 如果剩余空间足够大,分割内存块// 释放内存if (!// 获取内存块头部。

2025-06-03 16:03:15 1381

原创 布隆过滤器

布隆过滤器是一种空间效率极高的概率型数据结构,特别适合用于大规模数据的快速存在性判断。虽然存在一定的误判率,但在很多场景下这种误判是可以接受的,并且可以通过调整参数来控制误判率。通过本文的介绍,你应该已经掌握了布隆过滤器的基本原理、实现方法及其应用场景。在实际应用中,你可以根据具体需求选择合适的布隆过滤器变种,或者使用现有的开源库(如Python的、Java的中的BloomFilter)来快速实现功能。

2025-06-02 19:05:58 1073

原创 什么是缺页中断(缺页中断详解)

虚拟内存与分页机制现代操作系统(如Windows/Linux)为每个进程分配独立的虚拟地址空间,通过分页机制将虚拟地址映射到物理内存。页(Page):虚拟内存和物理内存的最小划分单位(通常为4KB、8KB等)。页表(Page Table):存储虚拟页到物理页的映射关系,由硬件(MMU,内存管理单元)查询。缺页中断是虚拟内存系统的核心机制,通过动态加载页实现内存的高效利用。主缺页中断代价高昂(涉及磁盘I/O),需通过优化内存使用、置换算法等降低其频率。理解缺页中断原理。

2025-06-01 19:28:02 1480

原创 C++读写锁以及实现方式

适用场景:需要理解底层原理,或在不支持C++20的环境中模拟读写锁。POSIX读写锁:适用于UNIX系统的高性能场景,但需手动管理锁生命周期。C++20共享互斥锁:跨平台、安全、简洁,推荐现代C++项目使用。自定义实现:帮助理解底层原理,但需谨慎处理线程安全和性能问题。合理使用读写锁能显著优化读多写少场景的并发性,但需注意避免死锁和饥饿问题,结合具体业务场景选择最优方案。参考资料。

2025-06-01 19:23:25 1850

原创 【计算机网络】子网划分

子网划分是IPv4地址管理的核心技术,通过借位将大网络划分为小子网,提升地址利用率和网络性能。关键步骤:确定需求→计算借位→生成子网列表→验证地址范围。VLSM是优化地址分配的利器,适用于主机数差异大的场景。实践建议:使用在线工具辅助划分,结合二进制和十进制计算加深理解,避免子网重叠和地址浪费。参考资料RFC 950(子网划分规范)《TCP/IP详解 卷1:协议》Cisco CCNA 子网划分教程。

2025-05-31 13:31:39 2732 1

原创 【计算机网络】 ARP协议和DNS协议

维度ARP协议DNS协议层 次网络层与数据链路层之间应用层协议类型无传输层协议(直接封装在以太网帧中)基于UDP/TCP(默认UDP 53端口)解析目标IP→MAC地址域名→IP地址作用范围局域网内全球互联网报文类型广播/单播单播ARP协议是局域网通信的基础,解决IP到MAC的映射,依赖广播机制和缓存管理,但存在欺骗风险。DNS协议是互联网的“地址簿”,通过分层解析和缓存机制实现高效域名解析,是所有网络应用的前提。

2025-05-31 13:28:10 1599

原创 【计算机网络】进程调度算法详解

根据调度时机和方式,可分为:非抢占式调度(Non-Preemptive):进程一旦获得CPU,就会运行直到完成或主动阻塞(如I/O等待)。抢占式调度(Preemptive):操作系统可根据优先级或时间片等规则,强制暂停当前进程,将CPU分配给其他进程。示例:示例(SJF):示例(时间片=2):进程执行顺序:P1(2) → P2(2) → P3(2) → P1(1) → P3(6)平均等待时间:(3 + 2 + 4) / 3 = 3分类:静态优先级:进程创建时确定,运行中不变。动态优先级:根据进程

2025-05-30 13:26:40 1330

原创 【计算机网络】fork()+exec()创建新进程(僵尸进程及孤儿进程)

fork() 用于创建新进程,父子进程并行执行相同代码(通过返回值区分逻辑)。exec() 用于加载并执行新程序,替换当前进程的内存空间。组合使用:先 fork() 创建子进程,再在子进程中 exec() 执行新程序,实现多任务处理。理解这两个系统调用是掌握UNIX/Linux进程管理的基础,在开发多进程应用(如服务器、shell脚本解释器)时尤为重要。

2025-05-30 13:16:15 1147

原创 【操作系统】内存管理知识点深度解析

内存管理是操作系统的核心模块,通过虚拟内存扩展地址空间、通过伙伴系统 / Slab 管理物理内存、通过页面置换和缓存优化提升性能。理解malloc的底层机制、Linux 的内存映射与回收策略,是优化程序内存使用(如避免内存泄漏、提升缓存命中率)的关键。随着硬件发展(如 NVM 内存、CXL 技术),内存管理将向更高效的分层架构演进,需持续关注硬件 - 软件协同优化。

2025-05-28 19:56:27 1097

原创 【操作系统】硬件结构知识点详解

S0:正常工作状态。S3:挂起到内存,仅内存供电,唤醒速度快。S4:挂起到硬盘,数据保存至磁盘,功耗更低但唤醒较慢。硬件结构是操作系统运行的物理基础,其设计直接影响系统性能和功能。理解 CPU 架构、内存管理、总线通信及电源管理等核心知识点,有助于深入掌握操作系统原理与优化方法。随着技术发展,硬件与软件的协同设计(如 ACPI、NVMe)将成为提升系统整体效率的关键。

2025-05-28 19:27:58 772

原创 C/C++编译链接过程

C/C++ 程序的编译链接过程是将源代码转换为可执行文件的一系列步骤,主要分为 预处理、编译、汇编、链接 四个阶段。

2025-05-27 17:34:24 777

原创 C++单例模式详解

C++ 单例模式的最佳实践推荐使用 Meyers’ Singleton(C++11 及以后),其简洁、线程安全且自动管理内存。对于旧版 C++ 或需要更复杂控制的场景,可采用双检锁模式并结合智能指针。无论选择哪种实现,都需注意线程安全、内存管理和代码可测试性。

2025-05-27 17:27:43 1278

原创 【计算机网络】IP 协议深度解析:从基础到实战

IP(Internet Protocol)作为网络层核心协议,承担逻辑寻址与数据包路由职责,分为 IPv4 和 IPv6。IPv4 采用32 位地址(192.168.1.1),IPv6 为 128 位( 如2001:0db8:85a3::8a2e:0370:7334)。IP协议无连接、不可靠,依赖传输层(如 TCP)保障可靠性,是网络通信的基石。IP 协议通过寻址、路由、分片等机制,支撑网络层通信。掌握 IP 地址分类、环回地址特性、ping 原理,是网络运维与开发的核心。

2025-05-26 22:19:00 1433

原创 计算机网络】深入解析 TCP 协议:从三次握手到拥塞控制

TCP(Transmission ControlProtocol)是传输层的面向连接、可靠的字节流协议,通过三次握手建立连接,四次挥手释放连接,利用滑动窗口、拥塞控制等机制保证数据可靠传输,适用于对可靠性要求高的场景(如HTTP、FTP)。双向确认:确保双方收发能力正常。若仅两次握手,服务端无法验证客户端是否收到 ACK(旧连接残留的 SYN 包可能导致误连)。三次握手通过双向确认,避免无效连接。TCP 协议通过精巧的设计(三次握手、滑动窗口、拥塞控制等),在不可靠的网络层上构建了可靠的传输服务。

2025-05-26 22:06:17 1278

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

应用层协议,基于 TCP/IP,无状态、明文传输(HTTPS 为加密版)。HTTP 协议是 Web 的基石,从 1.0 到 3.0 的演进不断优化性能与安全性。理解其工作原理、状态码含义、缓存机制及加密原理,对开发高性能、安全的 Web 应用至关重要。在实际工作中,需根据业务场景选择合适的 HTTP 版本,并合理配置缓存、压缩等优化策略。

2025-05-21 21:50:00 1700

原创 Linux 系统如何收发网络包

网络接口层(数据链路层):处理物理介质的帧传输(如 Ethernet、WiFi)。网络层(IP 层):负责 IP 寻址、路由选择及数据包分片 / 重组。传输层(TCP/UDP):实现端到端的可靠(TCP)或无连接(UDP)通信。应用层:通过 Socket 接口与用户空间程序交互(如 HTTP、SSH)。

2025-05-21 17:15:53 1631

原创 【计算机网络】 ARP协议和DNS协议

[TOP]

2025-05-21 12:07:21 376

原创 【计算机网络】 OSI七层网络模型

OSI 七层模型是理解计算机网络的 “金钥匙”,其分层思想贯穿整个网络技术体系:理论价值:提供标准化的分析框架,帮助理解协议栈的层次关系。工程价值:指导网络设备设计(如路由器工作在网络层)和故障排查。学习价值:是掌握 TCP/IP、SDN、5G 等复杂技术的基础。

2025-05-20 22:33:26 1667

原创 【计算机网络】 静态库与动态库

优先使用动态库:减少内存占用,支持动态更新,符合现代软件开发趋势。谨慎使用静态库:仅在对独立性要求极高或动态加载开销不可接受时使用。掌握工具链:版本管理:为动态库设计合理的版本号(如 libfoo.so.MAJOR.MINOR.PATCH)。安全考量:动态库可能被篡改,敏感应用需验证库的完整性。

2025-05-20 22:19:45 1248

原创 C++ 三大特性深度解析:封装、继承、多态

理解三大特性的深层机制(如继承中的访问权限变换、多态中的 vtable 生成规则),能帮助开发者写出更健壮的代码,避免常见陷阱(如忘记虚析构函数导致的资源泄漏、错误使用继承方式导致的接口暴露问题)。Circle(int a, int b, int r) : Shape(a, b), radius(r) {} // 调用基类构造函数​。Derived::func(int)隐藏了Base::func()​。Shape(int a, int b) : x(a), y(b) {} // 带参构造函数​。

2025-05-18 22:05:39 1064

原创 C++共享智能指针

如果申请的内存是普通类型,通过函数的()可完成地址的初始化,如果要创建一个类对象,函数的()内部需要指定构造对象需要的参数,也就是类构造函数的参数。智能指针的核心实现技术是引用计数,每使用它一次,内部引用计数加1,每析构一次,内部的引用计数减1,减为0时,删除所指的堆内存。在删除数组内存时,除了自己编写删除器,也可以使用C++提供的std::default_delete<T>()函数作为删除器,这个函数内部的删除功能也是通过调用delete来实现的,要释放什么类型的内存就将模板类型T指定为什么类型即可。

2025-05-17 21:54:33 819

原创 【C语言】 -- 扫雷(代码+详解)

该篇文章是用C语言来实现扫雷的,是对之前的知识灵活运用加以巩固,如何合理的分块来写一个工程性的代码,如果有大佬看到本篇文章并发现哪里要有不对的地方,请您一定要指出来。优点:如果我们后期需要改棋盘大小以及雷的个数的时候只需要在这里改,一劳永逸,不用在整个程序中修改,提高了效率。992210。

2024-04-26 10:03:27 1623 1

原创 static 和 extern 关键字

static在不同的语言中又有不同的使用方法,本文介绍的是static在C语言当中的用法。

2024-04-19 16:08:16 1490

原创 C语言goto语句的用法

goto语句其实在平常中我们 除了学习分支语句和循环语句时,介绍循环语句时,才会知道有goto语句这个用法,那读者可能会问:我们还有学习的必要吗?答案是显而易见的,正如黑格尔所说的:存在即合理!既然存在,就会有存在的必要!虽然我们现在不会遇到且用到 ,当在搞Linux硬件驱动等的时候,其内核含有较多的goto语句,如果不会且不知道的话,将会导致你无法理解这个的工作原理。因此我们要知道并学会用于它。

2024-04-18 14:27:59 391 1

原创 C语言知识点:操作符与循环

** 1、如果if-else在循环体中就可以使用,break语句和continue语句跳出整体循环和继续下一轮循环 2、如果if-else不在循环体中,则不能使用break,continue,但是又想不继续执行下去的话,可以使用 return结束。*** 同理,只要①中的条件表达式一直成立,②中的代码就会一直执行。逻辑—与&& 逻辑—或|| 逻辑—非!

2024-04-17 11:38:11 1671

原创 我的第一篇博客

由于鄙人酷爱游戏,所以希望能面试育碧,虽然可能有些不太实际,但是我希望可以通过自己的努力成为期中的一员!大家好,欢迎来到我的博客,一名刚刚入坑的新人。借此机会谈一谈我的目标与计划。很高兴你能阅读我的第一篇博客。精通c语言,能够完成一些简单的实战项目;学完c以后,继续深造c++,Java等。每天坚持抽出一到两个小时来打代码。保证最基本的c语言学习。

2024-03-30 14:24:36 162

空空如也

空空如也

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

TA关注的人

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