D4 Http服务器  Posix API Http服务器接收报文和分析int http_request(struct conn *c) { printf(request: %s\n, c-rbuffer); //分析 //... memset(c-wbuffer, 0, BUFFER_LENGTH); c-wlength 0; c-status 0; }回复报文和资源int http_response(struct conn *c) { int filefd open(index.html, O_RDONLY); struct stat stat_buf; fstat(filefd, stat_buf); if (c-status 0) { c-wlength sprintf(c-wbuffer, HTTP/1.1 200 OK\r\n Content-Type: text/html\r\n Accept-Ranges: bytes\r\n Content-Length: %ld\r\n Date: Tue, 30 Apr 2024 13:16:46 GMT\r\n\r\n, stat_buf.st_size); c-status 1; } else if (c-status 1) { int ret sendfile(c-fd, filefd, NULL, stat_buf.st_size); if (ret -1) { printf(errno: %d\n, errno); } c-status 2; } else if (c-status 2) { c-wlength 0; memset(c-wbuffer, 0, BUFFER_LENGTH); c-status 0; } close(filefd); return c-wlength; }先回复http头再回复资源这样需要两次触发写事件通过状态标status识实现Posix Api网络编程部分在头文件sys/socket.hnetinet/in.h中一套定义应用程序与操作系统之间接口的标准规范目的是保证源代码在不同类 Unix 系统上具有良好的可移植性。主要接口建立连接三次握手状态迁移tcp报文头中的标识SYN,ACK ​​​​​​​半连接全连接建立。客户端卡buf不发送第三次握手的确认帧导致半连接队列很多就是SYN泛洪建立socket fd位图置位为已用alloc tcb绑定地址ipportlisten开启监听发送连接申请connect接收连接accept分配fdfd映射到对应tcb传输连接recvsend本质拷贝拥塞控制发送方根据超时、反复收到相同确认帧判断网络是否拥堵。滑动窜口mtu关闭连接四次挥手双方close发送FIN后未收到ACK却收到FIN变为CLOSING状态P2P文章参考与零声教育的C/Clinux服务期高级架构系统教程学习:链接

相关新闻

最新新闻

Claude Code + Skills 自动生成标准测试用例与批量输出实践

Claude Code + Skills 自动生成标准测试用例与批量输出实践

测试用例是研发流程里最典型的“高重复、低创造性”工作,正好是 AI 能稳定发挥的领域。这次我们来看一个组合方案:Claude Code 作为命令行 AI Agent,配合自定义 Skills 技能包,自动生成标准格式的测试用例,并且支持批量…

2026/8/30 2:42:50
英伟达数据中心营收占比92.5%,开发者算力选型与部署指南

英伟达数据中心营收占比92.5%,开发者算力选型与部署指南

英伟达最新一季财报出来以后,很多人盯着的不是游戏显卡,而是数据中心业务。这次财报给出的信号非常明确:数据中心营收已经占到总营收的 92.5%。这不只是英伟达一家公司的业务结构变化,更直接关系到做 AI 基础设施、GPU 选型、本地…

2026/8/30 2:42:50
开源IM系统架构解析:从协议设计到高可用部署实战

开源IM系统架构解析:从协议设计到高可用部署实战

简介:这是一套面向开发者与企业技术团队的全端即时通讯系统源码,适用于需自主掌控通信数据、强调隐私安全的私有化部署场景。资源包含安卓(Java)、iOS(Objective-C)、PC(C#)三端纯原…

2026/8/30 2:42:50
MCP只读聚合:把多邮箱变成AI可调用的工具,支持手机远程查询

MCP只读聚合:把多邮箱变成AI可调用的工具,支持手机远程查询

这次我们来看一个来自 Hacker News Show HN 的 MCP 项目:把所有邮箱账号统一到一个只读 MCP server,并且可以从手机直接使用。它的核心思路不是做另一个邮箱客户端,而是把邮箱能力变成 AI Agent 可以调用的工具:你只需要在任意支持…

2026/8/30 2:42:50
Redis为什么这么火?三大核心秘密与实战指南

Redis为什么这么火?三大核心秘密与实战指南

开篇先从疑问切入。很多人第一次接触 Redis,可能都是从“面试题”或“项目缓存优化”开始的。但真正使用一段时间后,你会发现 Redis 能做的事情远不止缓存。它可以是分布式锁的承载体,可以做消息队列,可以扛住海量计数场景&#x…

2026/8/30 2:42:49
Java八股文全解析:从集合JVM到并发中间件,构建扎实技术地基

Java八股文全解析:从集合JVM到并发中间件,构建扎实技术地基

说到Java八股文,很多人的第一反应就是背题、刷题、应付面试。但我做了这么多年Java开发,也面过不少候选人,我的真实感受是:八股文这件事,被低估了,也被误解了。它确实是面试题,但如果只是把它当…

2026/8/30 2:37:48