news 2026/10/1 13:07:15

TCP 通信全流程:服务器与客户端

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TCP 通信全流程:服务器与客户端

一、 通信流程总览:像“打电话”一样简单

我们可以把 TCP 通信比作一次传统的电话服务:

  • 服务器(接线员):

    1. 装个电话机 (socket)。
    2. 申请一个固定电话号码 (bind)。
    3. 把电话线插好,确保能听到铃声 (listen)。
    4. 电话响了,接起来 (accept)。
    5. 开始聊天 (read/write)。
    6. 挂断 (close)。
  • 客户端(拨打者):

    1. 装个电话机 (socket)。
    2. 不需要申请固定号码(系统自动分配临时号码)。
    3. 拨打服务器的电话号码 (connect)。
    4. 开始聊天 (read/write)。
    5. 挂断 (close)。

二、 流程深度对比

1. 服务器端:六步走(重在“等”)

服务器的核心任务是等待。它有两个关键的文件描述符:

  • 监听描述符 (lfd):仅用于检测有没有人打电话进来。
  • 通信描述符 (cfd):当电话接通后,产生一个新的 fd 专门用来通话。

流程:

  1. socket(): 创建监听 fd。
  2. bind(): 绑定本地 IP+端口(必须做,否则客户端找不到)。
  3. listen(): 开启监听模式。
  4. accept():阻塞等待,直到连接建立,返回 cfd。
  5. read/write(): 使用 cfd 通信。
  6. close(): 关闭 cfd(结束通话)或 lfd(关停服务)。

2. 客户端:四步走(重在“连”)

客户端的核心任务是发起。它只需要一个文件描述符。

流程:

  1. socket(): 创建通信 fd。
  2. connect(): 主动连接服务器的 IP+端口。
    • 注:这里替代了服务器端的 bind+listen+accept 复杂过程。
  3. read/write(): 数据收发。
  4. close(): 关闭 fd。

三、 代码实战:完整的问候系统

我们来实现一个简单的业务:客户端发送自己的名字,服务器回复 “Hello, [名字]”。

1. 服务器端代码 (server.c)

#include<stdio.h>#include<string.h>#include<unistd.h>#include<arpa/inet.h>intmain(){// 1. 创建监听套接字intlfd=socket(AF_INET,SOCK_STREAM,0);// 2. 绑定地址structsockaddr_inaddr;addr.sin_family=AF_IN
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 11:04:58

AI万能分类器对比评测:与传统分类算法效果对比

AI万能分类器对比评测&#xff1a;与传统分类算法效果对比 1. 选型背景与评测目标 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;文本分类是构建智能客服、舆情监控、内容推荐等系统的核心任务。传统分类方法依赖大量标注数据和模型训练流程&#xff0c;开发周…

作者头像 李华
网站建设 2026/9/28 22:23:39

PyNifly:Blender中革命性的游戏模组开发解决方案

PyNifly&#xff1a;Blender中革命性的游戏模组开发解决方案 【免费下载链接】PyNifly Export/Import tools between Blender and the Nif format, using Bodyslide/Outfit Studios Nifly layer. Supports Skyrim LE, Skyrim SE, Fallout 4, Fallout New Vegas, Fallout 76, an…

作者头像 李华
网站建设 2026/10/1 10:40:58

GoldHEN作弊管理器终极指南:零基础玩转PS4游戏修改

GoldHEN作弊管理器终极指南&#xff1a;零基础玩转PS4游戏修改 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager 还在为复杂的游戏修改而烦恼吗&#xff1f;GoldHEN作弊管理器为你带…

作者头像 李华
网站建设 2026/9/30 10:28:31

RISC-V在DCS系统中的集成方案:项目应用解析

RISC-V 如何重塑工业控制&#xff1f;一个化工厂 DCS 改造项目的实战解析 在一座大型化工厂的中央控制室内&#xff0c;几十个反应釜正按照预设工艺平稳运行。操作员轻点鼠标&#xff0c;某条产线的温度曲线便实时跃然屏上——这看似寻常的一幕背后&#xff0c;却隐藏着一场悄然…

作者头像 李华
网站建设 2026/9/30 5:54:46

Windows效率革命:Flow Launcher全方位操作指南

Windows效率革命&#xff1a;Flow Launcher全方位操作指南 【免费下载链接】Flow.Launcher :mag: Quick file search & app launcher for Windows with community-made plugins 项目地址: https://gitcode.com/GitHub_Trending/fl/Flow.Launcher 在数字化工作环境中…

作者头像 李华
网站建设 2026/9/30 10:28:49

如何用语音控制桌面?UI-TARS智能助手带你体验未来交互

如何用语音控制桌面&#xff1f;UI-TARS智能助手带你体验未来交互 【免费下载链接】UI-TARS-desktop A GUI Agent application based on UI-TARS(Vision-Lanuage Model) that allows you to control your computer using natural language. 项目地址: https://gitcode.com/Gi…

作者头像 李华