自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vscode + SSH + Clangd 配置, 查看内核源码

本文介绍了在VSCode中配置Clangd插件查看Linux内核源码的方法。首先需要安装Clangd插件并禁用C/C++扩展,配置相关参数。然后在Ubuntu系统中安装clangd和bear工具,下载对应版本的内核源码并生成compile_commands.json文件。最后通过VSCode的SSH连接打开内核源码目录作为项目文件夹,即可实现代码补全、函数参数查看和定义跳转等功能。该方法通过将实际项目文件夹与内核源码目录同时加载到工作区,解决了项目路径不一致的问题,为网络编程学习提供了便利的内核源码查看环境

2025-12-08 16:00:24 648

原创 实现百万并发的TCP服务器

本文介绍了如何优化TCP服务器以实现百万并发连接。首先测试了基于epoll的TCP服务器性能,发现存在两个主要问题:1) 默认每个进程的文件描述符限制为1024,通过修改系统参数提升至1048576;2) 客户端端口耗尽问题,通过服务器开启100个监听端口解决。文章提供了修改系统配置的方法和优化后的服务器代码,通过多端口监听方式显著提升了并发处理能力。测试结果表明,这些优化措施能够有效支持更高并发的TCP连接需求。

2025-12-02 17:58:57 996

原创 实现TCP服务器:一请求一线程 | epoll

本文介绍了两种实现TCP服务器高并发连接的经典方法。首先阐述了TCP服务器的基本功能和工作原理,然后详细讲解了一请求一线程模型的实现方式,通过饭店类比形象说明了其工作流程,并给出了完整的C语言示例代码。接着指出了该模型的局限性,即线程资源消耗大、无法支持海量连接。最后提出使用epoll这一I/O多路复用技术作为解决方案,能够高效监控大量文件描述符事件,为后续实现百万并发服务器奠定基础。文章通过理论分析与代码实践相结合的方式,循序渐进地讲解了TCP服务器开发的核心技术。

2025-11-21 00:13:37 732

原创 实现http客户端请求:超详细解析

本文介绍了基于C语言实现HTTP客户端请求的方法。首先通过gethostbyname()函数进行DNS解析获取服务器IP地址,然后使用socket建立TCP连接。具体步骤包括:1)创建TCP套接字,2)填充sockaddr_in结构体并转换为sockaddr类型,3)通过connect()函数建立连接。文中详细讲解了socket编程的核心函数用法、地址结构体转换原理,以及IPv4地址处理方式,为后续发送HTTP请求和接收响应奠定了基础。整个过程展示了从域名解析到TCP连接建立的关键技术实现。

2025-11-18 18:29:49 731

原创 DNS的协议与请求:C语言实现DNS域名解析

本文介绍了基于UDP编程实现DNS域名解析的C语言实现方法。

2025-10-24 21:45:43 715

原创 Mysql与图片存储

:本文详细介绍了在Ubuntu22.04系统下编译安装MySQL5.7的步骤,包括下载资源包、安装依赖和启动服务。提供了配置远程连接的方法,包括创建管理员用户和修改配置文件。文章还包含完整的MySQL卸载流程。在SQL操作部分,展示了数据库和表的创建、增删改查等基本操作,以及存储过程的定义和使用。最后,通过C语言示例代码演示了如何连接MySQL数据库、执行查询操作和处理二进制数据(如图片存储),关键函数包括mysql_init()、mysql_real_connect()和mysql_real_query(

2025-10-13 20:53:05 550

原创 线程池实现

线程池主要用于避免线程过多耗尽内存、减少线程创建/销毁开销,实现任务与执行的分离(如日志处理)。其核心由任务队列、执行队列和管理组件三部分组成。文中以营业厅为例类比线程池:待办业务清单(任务队列)、柜员(工作线程)、管理员(管理组件)。线程池实现包括三个结构体:nTask存储待执行任务,nWorker表示工作线程,nManager协调任务分配。线程池生命周期包含:创建时初始化并创建工作线程;添加任务时唤醒空闲线程;工作线程循环处理任务;销毁时终止所有线程。代码实现展示了线程池的创建、任务添加和销毁过

2025-10-13 20:48:03 363

原创 并发锁实现

通过10个线程池模拟火车站抢票场景,解决多线程并发访问共享资源的问题。当10个线程各执行10万次count++操作时,由于线程切换导致实际count值小于预期的100万。原因在于count++操作被分解为三条指令,可能被线程切换打断。文章提出四种解决方案:1)互斥锁(mutex)锁定临界区;2)自旋锁(spinlock)忙等待;3)原子操作(xaddl)保证单指令执行;4)CAS(Compare-And-Swap)无锁机制。通过代码示例展示了不同方法的实现,并分析了各自的适用场景和优缺点。

2025-10-13 20:32:41 153

空空如也

空空如也

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

TA关注的人

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