<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[沫漓的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/2201_76111162</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; 2201_76111162]]></copyright><item><title><![CDATA[从零入门计算机网络系列（十五）：TCP可靠传输机制详解——从序号与确认应答到乱序处理]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/170126124</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/170126124</guid><author>2201_76111162</author><pubDate>Fri, 06 Nov 2026 15:37:52 +0800</pubDate><description><![CDATA[本文聚焦TCP可靠传输，介绍TCP报文的收发过程，以及双方同时发送数据的场景。分析TCP首部为何同时设置32位序号与32位确认序号，结合捎带应答理解两个字段的不同职责。随后解释确认序号表示下一个期望收到的字节，说明累计确认如何反映接收进度，以及数据丢失时为什么不能跳过缺口直接确认。最后通过乱序到达的例子，理解TCP如何利用序号定位数据、缓存乱序片段并按序交付，为后续学习超时重传与滑动窗口打下基础。]]></description><category></category></item><item><title><![CDATA[Qt程序运行异常与独立部署详解：从编译器配置修复到windeployqt打包发布]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/170129359</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/170129359</guid><author>2201_76111162</author><pubDate>Thu, 05 Nov 2026 11:20:22 +0800</pubDate><description><![CDATA[本文以QQMusic播放器为例，围绕程序在Qt Creator中运行异常、脱离开发环境后无法启动的问题，分析两种环境的差异。从Qt套件、编译器及运行时库入手，说明配置不一致引发的故障，介绍修正配置与重新构建的方法。随后结合Windows独立部署，讲解如何进入正确命令行环境，使用windeployqt部署依赖，按需补充运行时库，验证exe能否独立启动。最后总结版本匹配、Debug与Release构建规范，以及跨机器分发所需的DLL和插件目录，掌握Qt程序从调试到发布的完整流程。]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（十四）：TCP报文与字节流本质——从数据封装到报文边界]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/170041586</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/170041586</guid><author>2201_76111162</author><pubDate>Thu, 05 Nov 2026 09:44:26 +0800</pubDate><description><![CDATA[本文从网络报文组织方式入手，介绍操作系统如何通过“先描述、再组织”管理数据，并结合data指针变化，理解协议封装与解包的实现思路。随后回顾协议栈的处理流程，分析报文管理与并发收发的联系。接着聚焦TCP报头，从“如何交付数据”和“如何区分首部与载荷”出发，介绍端口号与首部长度字段的作用。重点解释TCP为何没有独立的数据长度字段：TCP提供面向字节流的传输服务，报文段划分不等于应用层消息边界，应用程序仍需通过自身协议完成消息拆分与解析。由此理解TCP通信机制。]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（十三）：UDP协议详解——从五元组与报文格式到面向数据报机制]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/170025974</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/170025974</guid><author>2201_76111162</author><pubDate>Wed, 04 Nov 2026 10:27:22 +0800</pubDate><description><![CDATA[本文从端口号与五元组入手，介绍网络通信中进程定位方式，以及端口范围与常见知名端口。随后拆解UDP报文首部，理解源端口、目的端口、长度和校验和的作用，分析UDP如何实现数据交付与差错检测。结合UDP无连接、不可靠、面向数据报等特点，说明收发缓冲区与报文边界的关系，以及实际开发中的报文长度限制和应用层分包问题。最后列举DNS、DHCP、TFTP等典型应用，梳理报文在操作系统协议栈中的封装、传输与解包过程，帮助读者从报文格式出发，理解UDP的通信机制与使用场景。]]></description><category></category></item><item><title><![CDATA[Codex 部署全攻略：从零到生产环境的万字实践指南]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/169951880</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/169951880</guid><author>2201_76111162</author><pubDate>Tue, 03 Nov 2026 22:02:21 +0800</pubDate><description><![CDATA[本文系统阐述了私有化部署代码大模型（如DeepSeek-Coder、Qwen-Coder）替代OpenAI Codex的完整方案，涵盖从硬件选型、vLLM推理服务搭建、API网关封装到IDE插件对接与性能调优。强调自建核心优势：数据合规、成本可控、可定制。推荐7B/32B模型搭配vLLM框架，通过INT4量化、前缀缓存、投机解码等技术压降延迟、提升吞吐。提出“小团队用云、规模大或强合规才自建”的经济性拐点，并给出监控、安全加固及扩容策略，助力企业落地高效、安全的私有代码助手。]]></description><category></category></item><item><title><![CDATA[Codex 陷阱：AI 生成代码的安全雷区（万字深度指南）]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/169951818</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/169951818</guid><author>2201_76111162</author><pubDate>Tue, 03 Nov 2026 21:58:25 +0800</pubDate><description><![CDATA[AI生成代码本质是“高概率文本续写”，追求“看起来对”而非“真正安全”。本文系统梳理六大类安全雷区——注入漏洞、认证缺陷、信息泄露、加密误用、供应链风险与资源问题，提供真实漏洞代码与修复对照，并构建“提示词约束+代码审查+自动化检测+测试建模+人工兜底”的安全闭环。核心结论：AI代码必须视为“未经审核的第三方代码”，开发者需以最高警惕性对待，确保在恶意输入下依然安全。]]></description><category></category></item><item><title><![CDATA[GitHub Actions 自动化：5 个真实运维提效案例]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/169837362</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/169837362</guid><author>2201_76111162</author><pubDate>Mon, 02 Nov 2026 13:25:36 +0800</pubDate><description><![CDATA[本文聚焦GitHubActions在运维自动化中的实战应用，通过发布部署、配置巡检、证书续期、日志清理、告警复盘五个真实案例，展示如何将重复、易错的运维操作转化为可版本化、可审计的自动化流水线。方案依托事件驱动、权限可控、生态丰富等优势，实现发布耗时从25分钟降至6分钟，配置漂移发现时间缩短至1小时内，故障复盘完整率提升至95%。文章强调以最小风险场景切入，逐步推进自动化，最终达成提效降本、增强稳定性与可追溯性的目标。]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（十二）：HTTP长连接与会话管理详解——从Connection到Cookie与Session]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/169834783</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/169834783</guid><author>2201_76111162</author><pubDate>Mon, 02 Nov 2026 13:20:44 +0800</pubDate><description><![CDATA[本文补充HTTP常见请求方法，介绍HTTP/1.1长连接与Connection首部的作用，以及服务器如何在同一条TCP连接上处理多次请求。接着辨析HTTP中“无连接”与“无状态”的含义。随后从登录场景引出Cookie，介绍其分类和工作流程，分析信息泄露与身份冒用的风险。最后介绍Session的服务端存储机制，说明Cookie与Session如何协同维持登录状态，并结合HTTPS、安全属性和异常检测讨论会话保护方法，理解HTTP连接管理与会话保持的基本原理。]]></description><category></category></item><item><title><![CDATA[《Qt从零入门系列（十六）：多线程同步机制详解——从QWaitCondition条件变量到QSemaphore信号量实战》]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/169546171</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/169546171</guid><author>2201_76111162</author><pubDate>Fri, 30 Oct 2026 11:54:04 +0800</pubDate><description><![CDATA[本文围绕 Qt 多线程中的条件变量与计数信号量展开，介绍 QWaitCondition 的等待与唤醒机制，并结合代码来讲解。重点讲解为什么用 while 检查条件，避免虚假唤醒和共享状态变化带来的问题。接着说明 QSemaphore 如何通过 acquire 和 release 管理资源、限制并发数量，并对比它与 QMutex 的区别。最后联系 Linux 的线程同步知识，总结两种工具的适用场景和注意事项，帮助大家理解同步原理，减少多线程开发中的常见问题。]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（十一）：HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/169157099</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/169157099</guid><author>2201_76111162</author><pubDate>Fri, 30 Oct 2026 09:00:00 +0800</pubDate><description><![CDATA[本文围绕HTTP重定向与请求方法展开，从故事引出临时与永久重定向，介绍301、302的含义，并结合Location响应头说明浏览器跳转。结合错误请求处理，理解重定向的应用。接着分析GET与POST在表单提交、参数位置、长度限制及安全性上的区别，澄清常见误区。最后介绍Fiddler抓包工具的原理，区分HTTP代理与网卡混杂模式，帮助读者结合实际请求理解HTTP通信过程。]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（十）：HTTP协议进阶——从资源路径解析到状态码与请求头详解]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/169070321</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/169070321</guid><author>2201_76111162</author><pubDate>Wed, 28 Oct 2026 08:45:00 +0800</pubDate><description><![CDATA[本文承接上一篇HTTP服务器实践围绕资源路径解析、请求读取与响应处理展开。从URL与服务器文件的映射关系入手，介绍指定文件访问和默认首页的处理方式接着拆解HTTP请求行与协议版本，结合浏览器的后续请求，分析如何正确接收完整报文。随后介绍HTTP状态码、代理转发及服务器异常处理机制，梳理Content-Type、Accept、Host和User-Agent等首部字段的作用并理解不同资源类型的识别方式。通过这些内容进一步掌握HTTP服务器从定位资源、解析请求到构建响应的完整处理流程为后续学习网络服务开发打下基础]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（九）：HTTP协议详解——从URL解析到请求响应与服务器实战]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/169069034</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/169069034</guid><author>2201_76111162</author><pubDate>Mon, 26 Oct 2026 08:45:00 +0800</pubDate><description><![CDATA[本文从日常访问的网址入手，介绍HTTP协议的基本作用，以及URL中协议、域名和资源路径的含义，理解浏览器如何定位网络资源。接着分析HTTP请求与响应的报文格式，梳理请求行、状态行、首部字段和消息体的组成，说明报头与正文如何分隔，以及报文怎样组装与解析。在实践部分，结合前面封装的Socket和公共模块，编写简单的HTTP服务器，完成请求解析、响应构建和测试页面返回，并通过编译运行与浏览器访问验证功能，帮助读者建立从协议原理到服务器实现的完整认识。]]></description><category></category></item><item><title><![CDATA[《Qt从零入门系列（十五）：Qt线程安全与锁机制详解——从QMutex到RAII与读写锁实战》]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/169068489</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/169068489</guid><author>2201_76111162</author><pubDate>Sun, 25 Oct 2026 20:47:52 +0800</pubDate><description><![CDATA[本文围绕Qt多线程开发中的线程安全问题展开，从共享资源的并发访问入手，分析数据竞争产生的原因，并通过实际案例复现线程不安全现象。随后介绍QMutex互斥锁的基本用法与核心接口，结合代码改造实现共享数据的同步保护。在此基础上，讨论手动加锁与解锁可能带来的风险，引入RAII思想和QMutexLocker实现锁的自动管理。最后介绍QReadWriteLock及其配套守卫类，通过读写锁示例理解不同锁机制的适用场景，并整理常见面试考点，帮助读者掌握Qt线程同步的基本方法。]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（八）：进程组、会话与守护进程——将网络计算器改造为后台服务]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/168545180</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/168545180</guid><author>2201_76111162</author><pubDate>Wed, 21 Oct 2026 08:30:00 +0800</pubDate><description><![CDATA[本文从Linux进程组与会话的基本概念出发，介绍组长进程、进程组生命周期，以及用户登录过程中终端、会话与登录Shell之间的关系。随后梳理控制终端、前后台进程组和Shell作业控制，帮助读者理解进程的组织方式与任务管理机制。在此基础上，进一步讲解守护进程的运行特点与基本实现原理，包括daemon()接口、标准文件描述符重定向和日志管理。最后以网络版计算器为例，结合Daemon.hpp、Log.hpp、TcpServer.cc及Makefile完成改造，展示普通服务程序守护化的实现过程与运行效果。]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（七）：应用层协议设计实战——基于TCP与JsonCpp实现网络计算器]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/168440503</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/168440503</guid><author>2201_76111162</author><pubDate>Tue, 20 Oct 2026 08:45:00 +0800</pubDate><description><![CDATA[本文以TCP网络版计算器为例，从应用层协议设计入手，分析通信双方如何约定数据格式，以及如何识别完整消息。随后介绍read、write、recv和send等I/O接口，结合TCP全双工通信与用户态、内核态之间的数据传递，理解网络收发的基本机制。在实践部分，使用Socket封装和JsonCpp完成结构化数据的序列化与反序列化，并介绍数据组帧的实现思路。最后结合客户端、服务器及协议模块的完整源码，展示项目的编译、运行与测试过程，帮助读者理解从协议设计到网络程序实现的完整流程。]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（六）：TCP套接字编程实战——从listen监听到客户端与服务器通信]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/168346147</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/168346147</guid><author>2201_76111162</author><pubDate>Mon, 19 Oct 2026 08:45:00 +0800</pubDate><description><![CDATA[本文围绕Linux下的TCP Socket编程展开，首先介绍socket、bind、listen等核心接口理解TCP服务器从创建套接字、绑定地址到监听连接的基本流程并结合连接状态转换，分析监听套接字与已连接套接字的分工。随后介绍客户端如何通过connect函数主动发起连接理解TCP三次握手、连接建立与数据收发之间的关系以及客户端和服务端的基本通信流程。最后结合IP地址封装、TCP服务器与客户端的完整源码完成编译与运行测试帮助读者掌握TCP套接字编程的基本方法为后续深入学习TCP协议和网络打下基础。]]></description><category></category></item><item><title><![CDATA[《Qt从零入门系列（十四）：QThread多线程详解——从线程创建到客户端阻塞处理》]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/168344092</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/168344092</guid><author>2201_76111162</author><pubDate>Sun, 18 Oct 2026 21:01:04 +0800</pubDate><description><![CDATA[本文围绕Qt的QThread多线程机制展开首先介绍Qt线程与系统线程的关系、QThread的基本设计思路及常用API再通过继承QThread并重写run()函数，实现一个多线程倒计时案例，理解线程执行流程与GUI主线程的使用规则。在此基础上，结合Qt客户端开发，分析耗时操作和阻塞式通信导致界面卡顿的原因并讨论相应的处理思路。最后进一步介绍QObject的线程归属、QThread的两种常见用法、线程退出与资源清理以及信号槽连接类型的特点帮助读者理解Qt多线程编程中的关键机制为后续网络通信和实际项目开发打下基础]]></description><category></category></item><item><title><![CDATA[从零入门数据结构与算法（三）：顺序表进阶——从增删查改到菜单实现与代码复用]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/167692360</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/167692360</guid><author>2201_76111162</author><pubDate>Thu, 15 Oct 2026 09:00:00 +0800</pubDate><description><![CDATA[上一篇介绍了顺序表的基本概念、结构设计与动态顺序表的初步实现，本文将在此基础上继续完善各项操作，依次实现头插、尾删、头删、指定位置插入与删除，以及元素查找和修改。通过SeqList.h、SeqList.c和test.c三个文件，分别完成接口声明、功能实现与测试验证。在基本操作完善后，进一步编写交互菜单，将各项功能整合到一个完整程序中，并通过代码复用与文件职责划分，优化程序的组织方式。通过本篇学习，读者能够更加熟练地掌握动态顺序表的增删查改操作，理解数据结构实现与程序组织之间的关系。]]></description><category></category></item><item><title><![CDATA[从零入门计算机网络系列（五）：UDP套接字编程实战——从核心API到客户端与服务器通信]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/167696233</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/167696233</guid><author>2201_76111162</author><pubDate>Wed, 14 Oct 2026 09:15:00 +0800</pubDate><description><![CDATA[本文围绕Linux下的UDP Socket编程展开，先介绍socket、sockaddr_in、IP地址转换与字节序处理等基础知识再结合bind、recvfrom和sendto等系统调用逐步实现UDP服务器与客户端的数据收发。随后分析客户端隐式绑定与服务端显式绑定的区别，讲解服务器地址绑定中的常见问题及INADDR_ANY的作用，并通过回调函数实现网络通信与业务逻辑的解耦。最后介绍inet_pton和inet_ntop等地址转换接口，结合完整源码将Socket API的使用底层机制与实际网络通信程序串联起来]]></description><category></category></item><item><title><![CDATA[从零入门数据结构与算法（二）：线性表详解——从顺序表原理到静态与动态实现]]></title><link>https://blog.youkuaiyun.com/2201_76111162/article/details/167689900</link><guid>https://blog.youkuaiyun.com/2201_76111162/article/details/167689900</guid><author>2201_76111162</author><pubDate>Tue, 13 Oct 2026 09:00:00 +0800</pubDate><description><![CDATA[本文从线性表的基本概念出发，介绍顺序表这一常见的数据结构，分析静态顺序表与动态顺序表的区别，并进一步讲解两种顺序表的结构设计。在代码实践部分，以C语言为基础，结合SeqList.h、SeqList.c和test.c三个文件，逐步实现动态顺序表的基本功能，并通过静态与动态顺序表的完整代码示例，加深对结构定义、接口实现和测试流程的理解。通过本篇学习，读者能够初步掌握顺序表的组织方式与实现思路，为后续学习顺序表的插入、删除及其他线性表结构打下基础。]]></description><category></category></item></channel></rss>