news 2026/4/23 12:49:21

TCP 协议核心与 Socket 编程入门:从理论到代码实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TCP 协议核心与 Socket 编程入门:从理论到代码实战

一、 TCP 的“三大法宝”

TCP(传输控制协议)之所以强大,是因为它拥有三个核心特性,这也是面试中必问的考点。

1. 面向连接 (Connection-Oriented)

  • 比喻:像打电话。通话前必须先拨通(建立连接),说完后必须挂断(断开连接)。
  • 机制
    • 三次握手:建立双向连接(你听得到吗?听得到。我也听得到。)。
    • 四次挥手:断开双向连接。
  • 意义:确保通信双方都在线,且都知道要开始或结束通信。

2. 安全/可靠机制 (Reliable)

  • 问题:网络是不稳定的,数据包可能会丢。
  • 解决
    • 校验:每收到一个包,都要检查数据有没有坏。
    • 确认与重传:发完数据后,如果收不到对方的“收到确认(ACK)”,TCP 会自动重传。
  • 结论:TCP 保证数据不丢失、不重复、按顺序到达

3. 流式传输 (Stream-Oriented)

  • 比喻:像水管里的水流。
  • 特点:发送方和接收方的速率可以不对等
    • 例子:发送方每 5 秒倒一大桶水(4KB),接收方可以用小勺子每秒喝一点(100字节)。只要内核缓冲区没满,数据就不会丢。
  • 差异:UDP 是“报文”传输(发一个包就是一个包),而 TCP 是“流”(没有明显的边界)。

二、 套接字通信流程图谱

写 Socket 代码,其实就是在这个流程图中填空:

阶段服务器端 (Server)客户端 (Client)
准备1.socket()创建套接字1.socket()创建套接字
寻址2.bind()绑定 IP+端口-
就绪3.listen()设置监听状态-
连接4.accept()阻塞等待连接2.connect()发起连接
通信5.read()/write()收发数据3.write()/read()收发数据
结束6.close()关闭连接4.close()关闭连接

三、 代码实战:编写一个回声服务器 (Echo Server)

我们将实现一个经典的 Echo 服务:客户端发什么,服务器就回什么。

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

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<arpa/inet.h>#include<sys/socket.h>#definePORT8888intmain(){// 1. 创建套接字 (AF_INET=IPv4, SOCK_STREAM=TCP)intserver_fd=socket(AF_INET,SOCK_STREAM,0);if(server_fd==-
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 17:53:49

快速上手:Android开发者信息库完整贡献指南

快速上手&#xff1a;Android开发者信息库完整贡献指南 【免费下载链接】android-dev-cn Some Chinese Android Developers Information, 微信公众号:codekk, 网站: 项目地址: https://gitcode.com/gh_mirrors/an/android-dev-cn 想要在Android开发领域快速成长并结识更…

作者头像 李华
网站建设 2026/4/15 18:40:27

Ink/Stitch刺绣插件:数字时代的创意针迹艺术

Ink/Stitch刺绣插件&#xff1a;数字时代的创意针迹艺术 【免费下载链接】inkstitch Ink/Stitch: an Inkscape extension for machine embroidery design 项目地址: https://gitcode.com/gh_mirrors/in/inkstitch 在数字化设计日益普及的今天&#xff0c;传统刺绣艺术与…

作者头像 李华
网站建设 2026/4/20 4:26:05

Qwen3-VL视频标注:自动化时间戳标记教程

Qwen3-VL视频标注&#xff1a;自动化时间戳标记教程 1. 引言&#xff1a;为什么需要自动化视频时间戳标注&#xff1f; 随着多模态大模型在视觉-语言理解任务中的广泛应用&#xff0c;视频内容的结构化处理成为智能内容分析、教育剪辑、影视制作和AI代理交互的关键环节。传统…

作者头像 李华
网站建设 2026/4/20 4:32:28

Qwen3-VL时间戳对齐:视频事件定位精度测试

Qwen3-VL时间戳对齐&#xff1a;视频事件定位精度测试 1. 引言&#xff1a;Qwen3-VL-WEBUI与视频理解新范式 随着多模态大模型在视觉-语言任务中的广泛应用&#xff0c;视频内容的理解与精准事件定位成为智能交互、内容审核、教育分析等场景的核心需求。阿里云最新推出的 Qwe…

作者头像 李华
网站建设 2026/4/20 0:56:23

Qwen3-VL-WEBUI实战落地:企业级视觉理解系统搭建教程

Qwen3-VL-WEBUI实战落地&#xff1a;企业级视觉理解系统搭建教程 1. 引言&#xff1a;为何选择Qwen3-VL-WEBUI构建企业视觉系统&#xff1f; 在当前AI驱动的数字化转型浪潮中&#xff0c;多模态能力已成为企业智能化升级的核心竞争力。传统纯文本大模型已无法满足复杂业务场景…

作者头像 李华
网站建设 2026/4/17 19:39:26

Qwen3-VL-WEBUI部署手册:备份与恢复的最佳实践

Qwen3-VL-WEBUI部署手册&#xff1a;备份与恢复的最佳实践 1. 简介与背景 1.1 Qwen3-VL-WEBUI 概述 Qwen3-VL-WEBUI 是基于阿里云开源的 Qwen3-VL-4B-Instruct 视觉语言模型构建的一站式交互式推理界面&#xff0c;专为开发者、研究人员和企业用户设计&#xff0c;支持图像理…

作者头像 李华