news 2026/4/16 15:42:41

Socket 编程核心:Accept 函数与三次握手的终章

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Socket 编程核心:Accept 函数与三次握手的终章

一、 阻塞的“守门员”

accept是一个非常典型的阻塞函数

  • 它的工作:盯着监听套接字(lfd)的读缓冲区。
  • 阻塞条件:如果读缓冲区里是空的(没人来连),accept就让程序停在这里,挂起等待,不消耗 CPU。
  • 解除阻塞:一旦有客户端完成了三次握手,内核会在读缓冲区里放一个请求。accept立刻醒来,处理这个请求。

注意:三次握手是由内核自动完成的,accept只是去“摘取”握手成功的果实。


二、 两个 FD 的故事:监听 vs 通信

这是初学者最容易晕的地方:accept会返回一个新的文件描述符。

  1. 监听描述符 (lfd)

    • 身份迎宾员
    • 数量:整个服务器通常只有1 个
    • 职责:只负责在门口站岗,把连接请求转给通信描述符,绝对不负责传输数据
  2. 通信描述符 (cfd)

    • 身份专属服务员
    • 数量:每连上一个客户端,就多1 个
    • 职责:专门负责和这个特定的客户端收发数据(read/write)。

三、 参数详解:谁连上了我?

intaccept(intsockfd,structsockaddr*addr,socklen_t*addrlen);
  • sockfd:那个唯一的监听描述符。
  • addr(传出参数):这是一个空盘子,由内核负责填满。函数返回后,里面就装了客户端的 IP 和端口(大端序)。如果不想知道是谁连的,可以传NULL
  • addrlen(传入传出参数)
    • 传入:告诉内核这个盘子有多大(sizeof(struct sockaddr_in))。
    • 传出:内核告诉实际填了多少字节。

四、 代码实战:获取客户端身份

下面的代码展示了如何使用accept接受连接,并把客户端的 IP 和端口打印出来。

1. 服务器代码 (accept_demo.c)

#include
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 18:20:40

如何用AnimeGANv2实现照片转动漫?WebUI部署实战案例

如何用AnimeGANv2实现照片转动漫?WebUI部署实战案例 1. 引言:AI驱动的二次元风格迁移新体验 随着深度学习在图像生成领域的持续突破,将现实世界的照片转换为具有特定艺术风格的图像已成为可能。其中,AnimeGANv2 作为专为“真人照…

作者头像 李华
网站建设 2026/4/16 9:24:19

VibeVoice-TTS时间戳生成:语音段落定位功能实现

VibeVoice-TTS时间戳生成:语音段落定位功能实现 1. 引言 1.1 业务场景描述 在多说话人长篇语音合成的应用中,如播客、有声书或对话式AI助手,用户不仅关注语音的自然度和表现力,还对内容可检索性提出了更高要求。例如&#xff0…

作者头像 李华
网站建设 2026/4/16 8:16:19

AnimeGANv2案例分享:动漫风格转换在影视制作中的应用

AnimeGANv2案例分享:动漫风格转换在影视制作中的应用 1. 技术背景与应用场景 随着深度学习技术的不断演进,图像风格迁移(Style Transfer)已成为AI视觉领域的重要研究方向之一。传统风格迁移方法如Neural Style Transfer虽然能够…

作者头像 李华
网站建设 2026/4/15 21:44:43

HunyuanVideo-Foley技术揭秘:腾讯混元如何实现声画同步?

HunyuanVideo-Foley技术揭秘:腾讯混元如何实现声画同步? 1. 技术背景与核心价值 随着短视频、影视制作和虚拟内容创作的爆发式增长,音效生成已成为提升视听体验的关键环节。传统音效制作依赖人工配音师逐帧匹配声音,耗时耗力且成…

作者头像 李华
网站建设 2026/4/16 10:56:26

HunyuanVideo-Foley边缘计算:在低功耗设备上的轻量化部署探索

HunyuanVideo-Foley边缘计算:在低功耗设备上的轻量化部署探索 1. 引言:端到端音效生成的技术演进与挑战 随着短视频、直播和UGC内容的爆发式增长,视频制作对“声画同步”的要求日益提升。传统音效添加依赖人工剪辑或预设音库,效…

作者头像 李华
网站建设 2026/4/16 9:20:30

【DevSecOps必修课】:如何实现企业级容器镜像签名与自动化验证

第一章:容器镜像签名验证的核心价值与行业趋势在云原生技术快速演进的背景下,容器镜像作为应用交付的核心载体,其安全性直接影响整个系统的可信程度。镜像签名验证通过密码学手段确保镜像来源的真实性和完整性,防止恶意篡改或供应…

作者头像 李华