<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sdm070427的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/sdm070427</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; sdm070427]]></copyright><item><title><![CDATA[Linux 中安装 Redis 5]]></title><link>https://blog.csdn.net/sdm070427/article/details/165489177</link><guid>https://blog.csdn.net/sdm070427/article/details/165489177</guid><author>sdm070427</author><pubDate>Tue, 15 Sep 2026 20:30:48 +0800</pubDate><description><![CDATA[在Linux中，先以root用户通过apt安装Redis，默认端口6379，仅限本地访问。为实现跨主机访问，需修改配置文件将绑定IP从127.0.0.1改为0.0.0.0，并关闭保护模式（protected-mode no）。完成后重启服务，使用redis-cli连接即可。操作简便，适合学习与测试环境。]]></description><category></category></item><item><title><![CDATA[仿muduo库实现高并发服务器-下]]></title><link>https://blog.csdn.net/sdm070427/article/details/161871690</link><guid>https://blog.csdn.net/sdm070427/article/details/161871690</guid><author>sdm070427</author><pubDate>Mon, 14 Sep 2026 23:07:40 +0800</pubDate><description><![CDATA[本文系统阐述了基于Reactor模型的高性能HTTP服务器设计与实现，核心包括：通过LoopThread与LoopThreadPool模块实现线程池管理及事件循环分发；TcpServer封装监听、连接管理与回调机制，支持主从反应堆模式；HttpRequest与HttpResponse模块解析与构造HTTP请求/响应，结合正则表达式精准提取路径、参数与头部信息；HttpContent负责分包粘包处理与完整请求解析；最终由HttpServer整合路由表（支持动态与静态资源）完成请求分发与响应生成。]]></description><category></category></item><item><title><![CDATA[仿muduo库实现高并发服务器-上]]></title><link>https://blog.csdn.net/sdm070427/article/details/161464134</link><guid>https://blog.csdn.net/sdm070427/article/details/161464134</guid><author>sdm070427</author><pubDate>Sat, 11 Jul 2026 19:43:35 +0800</pubDate><description><![CDATA[本文系统设计了一个高性能网络通信框架，核心模块包括：Buffer缓冲区实现高效数据读写；Socket封装套接字操作，支持TCP连接建立与收发；Channel作为事件管理器，绑定fd与回调；Poller基于epoll实现多路复用；EventLoop通过eventfd实现跨线程任务调度；TimerWheel时间轮机制高效处理定时任务；Connection管理完整连接生命周期，结合Any类实现协议上下文通用化。整体架构采用主从Reactor模型，保障高并发、低延迟与线程安全。]]></description><category></category></item><item><title><![CDATA[多路转接-epoll下]]></title><link>https://blog.csdn.net/sdm070427/article/details/160825702</link><guid>https://blog.csdn.net/sdm070427/article/details/160825702</guid><author>sdm070427</author><pubDate>Wed, 08 Jul 2026 23:08:04 +0800</pubDate><description><![CDATA[question接下来转到Connection模块-描述fd和对应事件的，设置 conn对应的fd 关心的事件，在listen对象初始化的时候，直接设置listensockfd关心的事件所以，这就需要TcpServer的另一个成员--epoll_ptr，引入Epoll模型，让它来做！接着在tcpserver里，添加成员，就绪事件的数组，统一管理就绪事件，然后底层通过epoll_wait来填写它们接着处理就绪的fd！接着完成connection模块和 listener模块的 recv函数。]]></description><category></category></item><item><title><![CDATA[多路转接-epoll上]]></title><link>https://blog.csdn.net/sdm070427/article/details/160774411</link><guid>https://blog.csdn.net/sdm070427/article/details/160774411</guid><author>sdm070427</author><pubDate>Thu, 18 Jun 2026 21:59:44 +0800</pubDate><description><![CDATA[epoll是改进的poll，但底层毫无关联epoll的核心定位：基于对多个fd等待的就绪时间通知机制。]]></description><category></category></item><item><title><![CDATA[多路转接-poll]]></title><link>https://blog.csdn.net/sdm070427/article/details/160770855</link><guid>https://blog.csdn.net/sdm070427/article/details/160770855</guid><author>sdm070427</author><pubDate>Thu, 18 Jun 2026 21:56:46 +0800</pubDate><description><![CDATA[注意：客户端退出，服务端对应的fd也就绪，服务端recv读到0，然后 poll不再关心这个fd上的事件，并 close fd。主体逻辑和server相同，就是接口差异。未来解决poll 的问题，]]></description><category></category></item><item><title><![CDATA[多路转接-select]]></title><link>https://blog.csdn.net/sdm070427/article/details/160743291</link><guid>https://blog.csdn.net/sdm070427/article/details/160743291</guid><author>sdm070427</author><pubDate>Tue, 16 Jun 2026 23:52:37 +0800</pubDate><description><![CDATA[select是来“等”的，等 读事件就绪、写事件就绪，所以剩余的参数就是这，它们是分开的。]]></description><category></category></item><item><title><![CDATA[五种IO模型&非阻塞IO]]></title><link>https://blog.csdn.net/sdm070427/article/details/160719999</link><guid>https://blog.csdn.net/sdm070427/article/details/160719999</guid><author>sdm070427</author><pubDate>Tue, 16 Jun 2026 23:48:52 +0800</pubDate><description><![CDATA[多个信号，位图可能只记录一次，出现信号丢失，有短板。]]></description><category></category></item><item><title><![CDATA[网络原理-5.NAT技术]]></title><link>https://blog.csdn.net/sdm070427/article/details/160694433</link><guid>https://blog.csdn.net/sdm070427/article/details/160694433</guid><author>sdm070427</author><pubDate>Wed, 10 Jun 2026 23:12:54 +0800</pubDate><description><![CDATA[所有子网中的主机，要请求的话，它的IP，都得替换成这个公网的出入口路由器IP，然后去访问 目标服务器）反向代理隐藏的是后端服务器的真实 IP：客户端只看到代理服务器的 IP，看不到后端服务器集群的地址。正向代理隐藏的是客户端的真实 IP：服务器只看到代理服务器的 IP，看不到发起请求的客户端 IP。NAT解决了IP地址不足的问题，将私有IP 转化成为公网IP，然后对外通信，上上节谈过，缓存，代理服务器可以缓存 后端服务器的响应，对于重复的请求，直接返回缓存内容。中间转发我的请求，隐藏了真实的 IP地址。]]></description><category></category></item><item><title><![CDATA[网络原理-4.数据链路层]]></title><link>https://blog.csdn.net/sdm070427/article/details/160684612</link><guid>https://blog.csdn.net/sdm070427/article/details/160684612</guid><author>sdm070427</author><pubDate>Wed, 10 Jun 2026 23:11:58 +0800</pubDate><description><![CDATA[d.分片的过程不一定在源主机内分片，还有可能在路上进行分片，不同的数据链路层对应的MTU的标准不同，比如在路由器的IP层，可能会再次进行分片，然后发送。c.MTU，规定从上层传到数据链路层的报文字节数不能超过1500字节，否则就要在IP网络层进行分片，上节谈过。MTU对UDP的影响：1500-20（IP首部）-20（TCP首部）=1800--MSS。MTU对UDP的影响：1500-20（IP首部）-8（UDP首部）=1472。b.MAC地址，是短期目标，根据IP进行 mac地址的选择。]]></description><category></category></item><item><title><![CDATA[网络原理-3.网络层&协议IP]]></title><link>https://blog.csdn.net/sdm070427/article/details/160597085</link><guid>https://blog.csdn.net/sdm070427/article/details/160597085</guid><author>sdm070427</author><pubDate>Wed, 10 Jun 2026 23:11:08 +0800</pubDate><description><![CDATA[本文摘要：文章系统梳理了IP协议的核心内容，首先阐述传输层与网络层关系，分析IP协议的核心功能、报头结构和子网划分原理，指出子网划分通过提高地址利用率缓解IPv4短缺问题（实际解决方案为NAT技术）。重点解析了公网与内网IP的区别，通过俄罗斯报文路由实例详细说明IP路由选择过程：数据包通过逐跳&quot;与运算&quot;匹配路由表，经多级路由器转发至目标网络。同时解释了主机与路由器的路由表协同工作机制，区分同子网直连通信和跨子网默认路由转发两种场景，并以192.168.56.3为例演示了具体路由匹配逻辑。]]></description><category></category></item><item><title><![CDATA[网络原理-2.传输层协议TCP]]></title><link>https://blog.csdn.net/sdm070427/article/details/160380765</link><guid>https://blog.csdn.net/sdm070427/article/details/160380765</guid><author>sdm070427</author><pubDate>Thu, 04 Jun 2026 21:44:31 +0800</pubDate><description><![CDATA[TCP可靠性机制摘要（148字）： TCP通过确认应答、序号、超时重传和连接管理（三次握手/四次挥手）保障可靠性。其中CLOSE_WAIT状态需应用层主动关闭连接。异常处理包括进程终止自动释放连接，以及保活机制检测断连。流量控制通过16位窗口大小动态调整发送速率，避免接收方缓冲区溢出；拥塞控制则根据网络状况调节发送量。延迟应答和捎带应答提升传输效率。面向字节流特性需应用层通过定界符或长度字段解决粘包问题，确保完整请求的解析。滑动窗口机制支持并行数据传输，PSH标志位可催促上层及时读取数据。]]></description><category></category></item><item><title><![CDATA[网络原理-1.传输层协议UDP]]></title><link>https://blog.csdn.net/sdm070427/article/details/160347781</link><guid>https://blog.csdn.net/sdm070427/article/details/160347781</guid><author>sdm070427</author><pubDate>Thu, 04 Jun 2026 21:41:08 +0800</pubDate><description><![CDATA[UDP协议格式&理解UDP是面向数据报的。UDP的特点&UDP缓冲区。]]></description><category></category></item><item><title><![CDATA[应用层协议HTTP]]></title><link>https://blog.csdn.net/sdm070427/article/details/160157065</link><guid>https://blog.csdn.net/sdm070427/article/details/160157065</guid><author>sdm070427</author><pubDate>Thu, 04 Jun 2026 21:39:41 +0800</pubDate><description><![CDATA[此时服务器就能看浏览器发来的请求-序列化的长字符串。]]></description><category></category></item><item><title><![CDATA[应用层自定义协议]]></title><link>https://blog.csdn.net/sdm070427/article/details/160025724</link><guid>https://blog.csdn.net/sdm070427/article/details/160025724</guid><author>sdm070427</author><pubDate>Tue, 19 May 2026 18:31:22 +0800</pubDate><description><![CDATA[本文介绍了基于模板方法模式的Socket套接字封装实现，以及服务器守护进程化的改造过程。主要内容包括：1) 使用模板方法模式封装Socket，子类通过重写SockOrDie方法实现定制；2) 完善协议模块处理流程，包括序列化/反序列化和请求处理；3) 实现守护进程化，通过Daemon类处理信号、创建子进程、脱离终端等操作；4) 重构主程序，采用三层架构（业务层、协议层、服务层）并集成守护进程功能。日志系统被重定向到文件，确保守护进程稳定运行。最终实现了一个可后台运行的TCP服务器框架。]]></description><category></category></item><item><title><![CDATA[TCP--面向字节流]]></title><link>https://blog.csdn.net/sdm070427/article/details/159932290</link><guid>https://blog.csdn.net/sdm070427/article/details/159932290</guid><author>sdm070427</author><pubDate>Tue, 19 May 2026 18:24:23 +0800</pubDate><description><![CDATA[本文介绍了TCP服务器的多进程与多线程实现方案。首先分析了多进程版本中端口绑定失败的问题，随后提出了多线程和线程池两种优化方案。重点阐述了回调机制的设计：在TCP服务器初始化时传入回调函数，当线程处理请求时通过_func回调上层业务逻辑。具体实现中，通过绑定成员函数、对象和占位符，将std::string func(const std::string&amp; cmd, InetAddr&amp; client)包装为可调用对象，最终完成Execute(buffer, client)的回调执行。]]></description><category></category></item><item><title><![CDATA[socket-udp]]></title><link>https://blog.csdn.net/sdm070427/article/details/159835742</link><guid>https://blog.csdn.net/sdm070427/article/details/159835742</guid><author>sdm070427</author><pubDate>Mon, 18 May 2026 15:32:01 +0800</pubDate><description><![CDATA[摘要：文章讨论了UDP服务器的分层架构设计，网络通信由底层处理，数据业务通过回调函数交给上层。介绍了网络序列转换类InteAddr.hpp的实现，以及聊天室应用中消息广播机制。重点分析了文件描述符重定向原理，通过修改底层文件描述符指向实现终端重定向。最后提出将UDP接收的消息放入线程池，由其他线程完成广播发送的方案。全文涉及网络编程、多线程和Linux系统底层机制等技术要点。]]></description><category></category></item><item><title><![CDATA[网络begin]]></title><link>https://blog.csdn.net/sdm070427/article/details/159728501</link><guid>https://blog.csdn.net/sdm070427/article/details/159728501</guid><author>sdm070427</author><pubDate>Mon, 18 May 2026 15:26:05 +0800</pubDate><description><![CDATA[完。]]></description><category></category></item><item><title><![CDATA[进程间通信]]></title><link>https://blog.csdn.net/sdm070427/article/details/158934259</link><guid>https://blog.csdn.net/sdm070427/article/details/158934259</guid><author>sdm070427</author><pubDate>Sat, 25 Apr 2026 23:07:08 +0800</pubDate><description><![CDATA[接下来通信，使用共享内存返回的虚拟地址，当作一个字符串。继续优化，挂接这些不要让用户调用，创建内部直接封装。子进程拿到任务码后做处理--lesson23。systemV消息队列、systemV信号量。匿名管道-2-5种特性，4种通信情况。匿名管道-1-demo测试代码。看到了同一份资源，还没开始通信。systemV进程间通信方案。]]></description><category></category></item><item><title><![CDATA[深刻理解进程信号]]></title><link>https://blog.csdn.net/sdm070427/article/details/159127360</link><guid>https://blog.csdn.net/sdm070427/article/details/159127360</guid><author>sdm070427</author><pubDate>Sat, 25 Apr 2026 22:53:31 +0800</pubDate><description><![CDATA[摘要：CPU执行用户代码时处于用户态，执行内核代码时处于内核态。典型流程为：用户态进程触发系统调用→CPU切换到内核态执行内核代码→处理完成后恢复进程上下文→切回用户态继续执行用户代码。这种切换实现了用户程序与内核功能的交互。（99字）]]></description><category></category></item></channel></rss>