logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

多路复用 epoll -- epoll 的工作原理,epoll 的优缺点,epoll 实现 TCP 回显服务器

本文介绍了Linux特有的高性能I/O多路复用机制epoll。epoll通过红黑树管理监控的文件描述符(FD),就绪链表存储触发事件,用户态缓冲区接收就绪事件,实现了O(1)复杂度的高效事件查询。相比select/poll,epoll支持海量连接,避免了FD数量限制和线性扫描开销。文章详细解析了epoll_create、epoll_ctl和epoll_wait三个核心函数的工作原理,以及关键结构体

文章图片
#服务器#c语言#c++ +1
网络层协议 IP 协议介绍 -- IP 协议,网段划分,私有 IP 和 公网 IP,路由

本文介绍了网络层IP协议的核心概念与应用。主要内容包括:1) IP协议格式解析,包含版本号、首部长度、服务类型等12个关键字段;2) 网段划分技术,包括传统IP分类(A-E类)和更高效的CIDR无类域间路由;3) 特殊的IP地址用途与IP地址限制解决方案,如动态分配、NAT技术和IPv6;4) 私有IP与公网IP的区别及应用场景;5) 路由工作原理,包括路由表查询和数据包转发过程。文章系统性地阐述

文章图片
#tcp/ip#网络#服务器
Linux环境下的基础开发工具 -- 包管理器,vim,gcc/g++,make/makefile,git,gdb/cgdb

本文介绍了Linux开发环境中的关键工具链,包括软件包管理、代码编辑、编译构建、调试及版本控制等方面。主要内容涵盖:1)Linux软件包管理机制,对比源码安装、rpm安装和yum/apt包管理器;2)vim编辑器的三种模式及常用命令;3)gcc/g++编译流程和动静态库原理;4)make/Makefile自动化构建工具;5)基于缓冲区的进度条程序实现;6)Git版本控制基本操作;7)gdb/cgd

文章图片
#linux#c语言
Linux系统中的环境变量 --命令行参数,PATH,通过代码获取环境变量,本地变量

本文主要介绍了Linux系统中的命令行参数和环境变量相关知识。命令行参数通过main()函数的argv和argc实现程序选项功能;环境变量则是系统运行的环境参数,具有全局特性,可通过env、echo等命令查看和修改。重点讲解了PATH、HOME等常见环境变量的作用,以及通过代码获取环境变量的三种方法:main函数参数、getenv()函数和全局变量environ。文章还区分了环境变量和本地变量的不

文章图片
#linux#运维#服务器
数据链路层介绍 -- 以太网数据帧格式,MTU 以及 MTU 与 UDP、TCP 的影响,ARP 协议

本文介绍了数据链路层核心概念,重点分析了以太网技术、MTU限制和ARP协议。以太网作为主流局域网技术,其数据帧包含6字节MAC地址、2字节协议类型和4字节校验码。MTU(最大传输单元)限制数据包大小(以太网为1500字节),影响UDP/TCP传输效率——UDP易因分片丢失数据,TCP通过MSS协商避免分片。ARP协议用于IP到MAC地址的映射,通过广播请求/单播应答实现跨层通信。文章还详细解析了A

文章图片
#网络#服务器#网络协议
C++中map和set的使用

本文系统介绍了C++ STL中的关联式容器set和map系列。首先对比了序列式容器与关联式容器的区别,指出关联式容器通过关键字保存和访问数据,底层采用红黑树实现。然后详细讲解了set容器,包括构造方式、插入删除操作、迭代器遍历、查找函数及multiset的差异。接着重点阐述了map容器,解析了pair类型、增删查改操作,特别是operator[]的实现原理和多功能特性。最后比较了multimap与

文章图片
#c++#开发语言#算法
到底了