logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

C++ linux

11.升级简单的Epoll,从 select 到 epoll:C++17 TCP 服务器的六层渐进式重构

本文介绍了一个从select逐步重构到epoll的C++17 TCP服务器项目,采用六层渐进式设计,每层独立解决特定问题: 分层设计:从基础select版本开始,逐步引入非阻塞I/O、ET模式、发送队列、背压控制等特性,每层都有完整代码和明确修改点。 epoll核心概念:强调epoll是就绪通知机制而非异步I/O,解析了interest list与ready list的区别,澄清了常见误解(如"零

#c++#tcp/ip#服务器
Linux C 多线程 TCP 并发服务器:从 `accept()` 到工作线程的完整解析

本文详细解析了Linux C多线程TCP并发服务器的实现原理,重点区分了主线程、工作线程、监听套接字和通信套接字四个核心概念。文章通过流程图展示了多线程服务器的运行机制:主线程负责accept()接收新连接,为每个客户端创建独立的工作线程进行通信。深入探讨了线程间资源共享问题,指出文件描述符在进程内共享但需明确所有权管理。特别强调了正确传递线程参数的方法,避免常见的竞争问题。本文为构建高效的多线程

#服务器#linux#c语言
Linux C 多线程 TCP 并发服务器:从 `accept()` 到资源管理深度剖析

本文深入剖析了Linux C多线程TCP并发服务器的核心实现,重点从accept()机制到资源管理展开分析。首先解释了为何需要并发处理客户端请求,指出单线程模型的阻塞缺陷,并提出主线程负责accept()、工作线程处理通信的"一连接一线程"方案。文章详细区分了监听套接字和通信套接字的本质差异,强调accept()会创建新描述符而非修改原有监听套接字。在资源管理方面,剖析了线程间共享与独占的资源类型

#服务器#linux#c语言
深入理解 C/C++ 中的 `extern`:声明、定义、作用域、链接属性、存储期与生命周期

本文深入解析了C/C++中的extern关键字及其相关概念,包括声明与定义的区别、作用域、链接属性、存储期和生命周期。通过实际示例演示了如何使用extern实现跨源文件共享变量,并验证了不同翻译单元访问的是同一对象。文章还分析了编译和链接过程中符号的处理机制,解释了为什么头文件中应避免带初始化的extern定义以防止重复定义错误。最后,通过nm工具展示了目标文件中的符号信息,帮助理解链接器如何解析

#c语言#c++#java
深入理解 LRU 缓存:原理、数据结构设计与 C++ 完整实现

LRU缓存原理与实现总结 LRU(Least Recently Used)是一种基于时间局部性原理的缓存淘汰策略,当缓存满时优先淘汰最久未访问的数据。其核心数据结构采用哈希表+双向链表组合:哈希表实现O(1)查找,双向链表维护访问顺序(头部为最近访问,尾部为最久未访问)。这种设计使得get和put操作都能在O(1)时间内完成。双向链表确保节点删除高效,而哈希表通过存储节点指针快速定位。实现时需要保

#缓存#数据结构#c++
带你手把手解读rejail沙盒源码(0.9.72版本) (八) fnettrace-dns

DNS,全称。采用模式,DNS client发出查询请求,DNS server响应请求。DNS client通过查询DNS server获得主机的 IP 地址,进而完成后续的 TCP/IP 通信过程。当 Windows 系统用户使用命令时,DNS 会自动查找注册了主机名和 IP 地址的数据库,并返回对应的 IP 地址。

文章图片
#linux
ida-pro-mcp 安装与配置指南(Windows + IDA Pro 9.4 + Trae)

<think>我们根据内容生成摘要,要求≤150字。内容是关于ida-pro-mcp安装配置指南,包含环境、关键步骤(降级mcp、安装插件、Trae配置、验证)和常见问题。摘要应概括核心要点:安装环境、两个关键坑(mcp版本降级、Trae手动配置)、验证方法。字数限制,需精炼。</think>在Windows+IDA Pro 9.4+Trae环境下安装ida-pro-mcp 1.4.0,需注意:用

#windows
ida-pro-mcp 安装与配置指南(Windows + IDA Pro 9.4 + Trae)

<think>我们根据内容生成摘要,要求≤150字。内容是关于ida-pro-mcp安装配置指南,包含环境、关键步骤(降级mcp、安装插件、Trae配置、验证)和常见问题。摘要应概括核心要点:安装环境、两个关键坑(mcp版本降级、Trae手动配置)、验证方法。字数限制,需精炼。</think>在Windows+IDA Pro 9.4+Trae环境下安装ida-pro-mcp 1.4.0,需注意:用

#windows
指针转换方式详解-重定位表解析部分

这篇文章演示了在C++中进行指针运算的三种正确方式和一种常见错误方式。通过模拟IMAGE_BASE_RELOCATION结构体,作者展示了直接使用结构体指针加法会导致错误偏移(乘以结构体大小),而正确的方法包括:1)转换为DWORD后加8;2)转换为BYTE*指针再加8;3)使用平台安全的DWORD_PTR类型。文章还演示了如何计算重定位项数量,强调了指针运算时类型安全的重要性。这些技巧在处理二进

<Fluent Python>第三章:字典与集合

本章深入探讨了Python中字典与集合的核心概念及其高级应用。主要内容包括:字典的现代语法如字典推导式、映射解包和合并操作符(|);映射类型的模式匹配实现;处理缺失键的方法;标准库中的字典变种;集合类型的丰富操作。重点解析了哈希表在字典和集合底层实现中的关键作用,以及Python 3.6+版本对字典内存优化和键序保留的改进。本章还对比了dict与OrderedDict的差异,并新增了字典视图对象的

#python#网络#开发语言
    共 15 条
  • 1
  • 2
  • 请选择