news 2026/3/16 8:30:43

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/3/14 13:13:44

HunyuanVideo-Foley容器化部署:Docker镜像使用与K8s编排

HunyuanVideo-Foley容器化部署:Docker镜像使用与K8s编排 1. 技术背景与应用场景 随着AI生成内容(AIGC)在多媒体领域的深入发展,视频制作的自动化和智能化需求日益增长。音效作为提升视频沉浸感的关键环节,传统依赖人…

作者头像 李华
网站建设 2026/3/15 11:31:04

实测AI智能文档扫描仪:办公文档秒变高清扫描件

实测AI智能文档扫描仪:办公文档秒变高清扫描件 1. 引言:为什么我们需要智能文档扫描? 在日常办公中,我们经常需要将纸质文件、合同、发票或白板内容数字化。传统方式依赖专业扫描仪或手动拍照后裁剪调整,效率低且效果…

作者头像 李华
网站建设 2026/3/15 16:35:07

AI模型租赁时代:1小时起租,像共享单车一样方便

AI模型租赁时代:1小时起租,像共享单车一样方便 1. 引言:当AI算力遇上共享经济 想象一下这样的场景:凌晨2点接到客户紧急需求,需要跑通一个Stable Diffusion模型生成50张产品概念图。作为自由职业者的你,手…

作者头像 李华
网站建设 2026/3/15 0:50:21

venera UI组件库:重新定义跨平台漫画应用开发效率

venera UI组件库:重新定义跨平台漫画应用开发效率 【免费下载链接】venera A comic app 项目地址: https://gitcode.com/gh_mirrors/ve/venera 你是否曾为构建漫画应用而头疼不已?传统的开发方式往往需要从零开始搭建每一个界面组件,不…

作者头像 李华
网站建设 2026/3/15 16:35:09

企业级权限管理系统快速搭建:从零到精通的技术实践指南

企业级权限管理系统快速搭建:从零到精通的技术实践指南 【免费下载链接】Zr.Admin.NET 🎉ZR.Admin.NET是一款前后端分离的、跨平台基于RBAC的通用权限管理后台。ORM采用SqlSugar。前端采用Vue、AntDesign,支持多租户、缓存、任务调度、支持统…

作者头像 李华
网站建设 2026/3/15 15:43:17

AI学习机对比:给孩子买万元设备不如租用专业GPU

AI学习机对比:给孩子买万元设备不如租用专业GPU 1. 为什么专业GPU比AI学习机更值得投资 最近不少家长发现,市面上标价上万元的"AI学习机"实际上只是性能被严重阉割的普通平板电脑。这些设备虽然打着AI教育的旗号,但内置的AI功能往…

作者头像 李华