尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Socket

Socket
📅 发布时间:2026/7/9 2:31:45

客户端(Client) 服务端(Server)

-------- 创建 Socket ----------------

------ 建立 TCP 连接 ----------------

-------- 发送数据 -------------------

------- 接收数据 --------------------

------- 发送数据 -------------------

------ 接收数据 --------------------

------------- 关闭连接 --------------

Socket 分类

1. TCP Socket(最常用)

特点:

  • 面向连接
  • 数据可靠
  • 数据不会丢失
  • 数据按顺序到达
  • 速度稍慢

适用于:

  • 聊天
  • MQTT
  • IM
  • 文件传输
  • HTTP/HTTPS(底层就是 TCP)

IM(Instant Messaging)是即时通讯系统,是一种业务形态,例如微信、QQ,它包含聊天、群聊、在线状态、消息同步等完整功能。MQTT(Message Queuing Telemetry Transport)是一种基于 TCP 的轻量级发布/订阅消息协议,只负责消息的可靠传输。IM 可以建立在 TCP Socket、WebSocket 或 MQTT 等协议之上。在 IoT 场景中,由于 MQTT 协议开销小、支持长连接、QoS 和断线重连,因此非常适合设备与云端之间的实时通信。

2. UDP Socket

特点:

  • 无连接
  • 不保证送达
  • 不保证顺序
  • 速度快

适用于:

  • 视频直播
  • 语音通话
  • 游戏
  • 局域网广播

Socket 四要素

IP 地址 端口号 协议(TCP/UDP) 数据

TCP三次握手:请求携带报文--获取请求响应--反馈客户端
在读写过程中,消耗序列号是为了排序、重试机制等操作;

四次挥手:通讯结束:1️⃣客户端请求关闭、2️⃣服务端收到允许关闭,但数据未发完(单方面确认客户端关闭)、3️⃣服务端确认关闭、4️⃣确认客户端和服务端关闭(必须2️⃣,因为服务端没收到通知会一直重试机制)

高频追问:
为什么 TIME_WAIT 要等待 2MSL?
TIME_WAIT 等待 2MSL 有两个目的:第一,保证最后一个 ACK 丢失时还能重新发送,确保服务器正常关闭连接;第二,等待网络中的旧 TCP 报文全部过期,避免影响后续使用相同四元组(源 IP、源端口、目标 IP、目标端口)的新连接。

CLOSE_WAIT 状态过多说明什么问题?(通常是应用程序没有及时调用close()关闭 Socket)

CLOSE_WAIT 表示 TCP 已收到对方关闭请求,并返回 ACK,但本地应用程序没有及时关闭 Socket(调用Close()),因此连接一直停留在 CLOSE_WAIT。大量 CLOSE_WAIT 一般说明应用层存在资源泄漏或未正确调用 close() 的问题。


FIN_WAIT_2 状态为什么会出现?

FIN_WAIT_2 表示本端已经发送 FIN,并收到对方 ACK,自己的发送方向已经关闭,但仍在等待对方发送 FIN。出现时间过长通常说明对方应用程序没有及时关闭连接。

RST(Reset)和 FIN 有什么区别?

FINRST
正常关闭强制关闭
四次挥手立即断开
可继续读取剩余数据数据立即丢弃
优雅关闭(Graceful Close)异常关闭(Abortive Close)


什么情况下会发送 RST 而不是 FIN?

RST 一般出现在连接异常或需要立即终止连接的场景,例如连接的目标端口不存在、程序异常退出、收到属于不存在连接的 TCP 报文,或者应用主动要求强制关闭连接。RST 不会进行四次挥手,而是立即释放连接。

相关新闻

  • 企业AI管理工具 AIHelms,统一管模型控成本算价值!下载
  • AI驱动FDC实战:半导体制造良率提升之路
  • Hive sql 初级题 05

最新新闻

  • Windows 环境 PostgreSQL 18 安装与 pgvector 向量扩展部署文档
  • 数据分析师转型 AI 数据工程:从跑 SQL 到喂模型
  • 短视频去水印、图文解析和小程序无痕去水印的工程化思路
  • 2026年度AI培训综合榜单:企业内训与智能体落地机构排名解析
  • 公章丢失登报声明模板内容怎么写?办理登报的流程怎么走?
  • 高压线下吊装作业太危险,电磁探测预警设备如何保命

日新闻

  • SQL 查询语句的标准逻辑执行顺序(即语义处理顺序),它与实际书写顺序不同,但决定了数据库如何解析和执行查询
  • ORB-SLAM2 重定位模块深度解析:从 BoW 候选帧到 PnP 优化的 6 步流程
  • 罗技鼠标宏压枪脚本终极指南:从原理到实战的完整解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号