news 2026/6/6 8:32:19

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/5/30 23:05:42

vn.py量化交易框架:从零构建专业交易系统的终极指南

vn.py量化交易框架&#xff1a;从零构建专业交易系统的终极指南 【免费下载链接】vnpy 基于Python的开源量化交易平台开发框架 项目地址: https://gitcode.com/vnpy/vnpy 在当今数字化金融时代&#xff0c;Python量化交易框架vn.py为开发者提供了从数据获取到策略执行的…

作者头像 李华
网站建设 2026/5/30 23:07:10

Wan2.2-Animate:让动画创作像发朋友圈一样简单

Wan2.2-Animate&#xff1a;让动画创作像发朋友圈一样简单 【免费下载链接】Wan2.2-Animate-14B 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-Animate-14B 还记得小时候看动画片时&#xff0c;总觉得那些会动的角色特别神奇吗&#xff1f;现在&#xf…

作者头像 李华
网站建设 2026/6/5 7:19:39

如何快速掌握o-lib:免费PC端开源图书管理工具的完整使用指南

如何快速掌握o-lib&#xff1a;免费PC端开源图书管理工具的完整使用指南 【免费下载链接】o-lib O-LIB is a free and open source software for PC. 项目地址: https://gitcode.com/gh_mirrors/ol/o-lib 想要高效管理个人图书收藏&#xff1f;o-lib这款免费PC端开源图书…

作者头像 李华
网站建设 2026/5/31 17:17:14

OpCore Simplify智能EFI配置:从硬件识别到完美安装指南

OpCore Simplify智能EFI配置&#xff1a;从硬件识别到完美安装指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify作为专业的OpenCor…

作者头像 李华
网站建设 2026/6/2 14:34:56

虚拟显示器:如何让单屏电脑拥有多任务超能力

虚拟显示器&#xff1a;如何让单屏电脑拥有多任务超能力 【免费下载链接】Virtual-Display-Driver Add virtual monitors to your windows 10/11 device! Works with VR, OBS, Sunshine, and/or any desktop sharing software. 项目地址: https://gitcode.com/gh_mirrors/vi/…

作者头像 李华