发布时间:2026/6/20 6:59:11
Socket网络编程:TCP/UDP原理、服务端与客户端手写实战
博客导语Socket是所有网络请求的底层HTTP、爬虫、接口请求本质都是封装后的Socket通信。90%爬虫开发者只会调库不懂底层遇到粘包、断连、超时问题完全无从下手。本文从零手写TCP、UDP服务端与客户端吃透网络通信底层逻辑。一、Socket核心概念Socket套接字是操作系统提供的网络通信接口通过「IP端口」实现跨设备数据传输。两大主流协议TCP面向连接、可靠、三次握手、四次挥手、无数据丢失、流式传输UDP无连接、不可靠、速度快、数据包传输、适合直播/语音二、TCP通信完整实战一对一通信TCP服务端import socket # 1. 创建socket对象 server socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2. 绑定IP和端口 server.bind((127.0.0.1, 8888)) # 3. 开启监听 server.listen(5) print(服务端启动成功等待客户端连接...) # 4. 等待客户端连接 conn, addr server.accept() print(f客户端{addr}已连接) # 5. 收发数据 while True: data conn.recv(1024).decode(utf-8) if not data: break print(收到客户端消息, data) conn.send(服务端已收到.encode(utf-8)) conn.close() server.close()TCP客户端import socket client socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((127.0.0.1, 8888)) client.send(Hello Socket.encode(utf-8)) res client.recv(1024).decode(utf-8) print(服务端回复, res) client.close()三、UDP通信实战无连接通信UDP服务端import socket server socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server.bind((127.0.0.1, 9999)) while True: data, addr server.recvfrom(1024) print(收到消息, data.decode(utf-8)) server.sendto(UDP收到.encode(utf-8), addr)UDP客户端import socket client socket.socket(socket.AF_INET, socket.SOCK_DGRAM) client.sendto(UDP测试消息.encode(utf-8), (127.0.0.1, 9999))四、高频面试避坑总结TCP面向连接、可靠、有序UDP无连接、高效、可能丢包TCP存在粘包问题UDP无粘包爬虫、HTTP、接口全部基于TCP

相关新闻

视频孪生+空间智能大模型 港航口岸航空全域数字化解决方案
2026/6/20 5:59:11

视频孪生+空间智能大模型 港航口岸航空全域数字化解决方案

一、独家首创架构:空间智能中枢大模型双驱体系本方案为国内独家首创视频孪生空间感知与AI大模型深度耦合架构,属于行业无同类对标的源头级技术体系。依托镜像视界自研全域空间智能算力,为通用AI大模型搭载专属视频孪生视觉空间感知器官&#…

阅读更多
Native Sparse Attention PyTorch实战指南:Enwik8语言建模完整示例
2026/6/20 5:59:11

Native Sparse Attention PyTorch实战指南:Enwik8语言建模完整示例

Native Sparse Attention PyTorch实战指南:Enwik8语言建模完整示例 【免费下载链接】native-sparse-attention-pytorch Implementation of the sparse attention pattern proposed by the Deepseek team in their "Native Sparse Attention" paper 项目…

阅读更多
如何快速搭建个人专属的影视聚合播放站
2026/6/20 5:59:11

如何快速搭建个人专属的影视聚合播放站

如何快速搭建个人专属的影视聚合播放站 【免费下载链接】DecoTV 基于最新版LunaTV二次开发的一个开箱即用的、跨平台的影视聚合播放站。【原KatelyaTV】 项目地址: https://gitcode.com/gh_mirrors/de/DecoTV 想象一下,你坐在客厅沙发上,想要观看…

阅读更多
深入解析CAN控制器:从寄存器位到消息调度与滤波机制
2026/6/20 7:59:11

深入解析CAN控制器:从寄存器位到消息调度与滤波机制

1. 项目概述:从寄存器位到通信系统在嵌入式系统,尤其是汽车电子和工业控制领域,CAN总线是构建可靠、实时分布式网络的基石。很多工程师在初次接触CAN驱动开发时,往往会被数据手册中那些密密麻麻的寄存器位定义图所困扰——IDR0、I…

阅读更多
MC9RS08KA2复位与中断机制解析:构建嵌入式系统可靠性的基石
2026/6/20 7:59:11

MC9RS08KA2复位与中断机制解析:构建嵌入式系统可靠性的基石

1. 项目概述与核心价值在嵌入式开发的日常里,我们常常把注意力集中在算法实现、外设驱动和功能逻辑上,但真正决定一个产品能否在复杂电磁环境或严苛供电条件下稳定“活着”的,往往是那些最底层的系统控制机制。复位和中断,这两个看…

阅读更多
华硕主板用户必看:FanControl传感器识别问题的3步终极解决方案
2026/6/20 7:59:11

华硕主板用户必看:FanControl传感器识别问题的3步终极解决方案

华硕主板用户必看:FanControl传感器识别问题的3步终极解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Tre…

阅读更多
经典8位MCU MC68HC908SR12架构解析与嵌入式开发实战
2026/6/20 7:59:11

经典8位MCU MC68HC908SR12架构解析与嵌入式开发实战

1. 项目概述:深入剖析一颗经典的8位微控制器 在嵌入式系统开发的早期,8位微控制器(MCU)是绝对的王者,它们以极低的成本、出色的实时性和丰富的片上资源,驱动了无数消费电子、工业控制和汽车电子设备。今天&…

阅读更多
MC68HC908中断机制深度解析:IRQ与KBI模块实战指南
2026/6/20 7:59:11

MC68HC908中断机制深度解析:IRQ与KBI模块实战指南

1. 项目概述与中断机制核心价值在嵌入式开发的江湖里,中断机制绝对是每个工程师必须掌握的“内功心法”。它就像一位时刻待命的哨兵,当外部世界有紧急事件(比如按键按下、传感器数据到达)发生时,哨兵会立刻打断CPU正在…

阅读更多
nmcli c
2026/6/20 6:59:11

nmcli c

1、用nmcli c 新增一个名为ens201的连接,该连接的IP等网络参数(eg:ip获取的方式、dns、网关、IP地址)是自动获取的2、用nmcli c 新增一个名为ens203的连接,该连接的IP等网络参数(eg:ip获取的方式、dns、网关、IP地址)是手动设置的将上图中no改为yes即可3…

阅读更多
别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)
2026/6/17 23:21:18

别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)

超越BERT:用Transformers库高效实现文本相似度计算的三种实战方案在自然语言处理领域,文本相似度计算是信息检索、问答系统和推荐系统等应用的核心技术。传统方法如TF-IDF或Word2Vec已逐渐被基于Transformer的预训练模型所取代。Hugging Face的Transform…

阅读更多
Prompt Engineering:重构人机协作的工程化方法论
2026/6/18 4:35:02

Prompt Engineering:重构人机协作的工程化方法论

1. 项目概述:这不是“写提示词”,而是重构人机协作的底层逻辑“Prompt Engineering”这个词,这两年被讲得太多,也太轻飘。很多人把它理解成“给AI发指令的技巧”,甚至简化为“多加几个形容词”“换种说法再试一次”。我…

阅读更多
Anthropic提示层归零:模型即协议的工程实践
2026/6/18 15:04:04

Anthropic提示层归零:模型即协议的工程实践

1. 项目概述:这不是一次普通更新,而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题一出来,我正在调试一个Claude调用链的终端前停了三秒。不是因为震惊,而是因为熟悉&…

阅读更多
洛雪音乐终极音源指南:一站式获取全网无损音乐的完整解决方案
2026/6/20 0:59:03

洛雪音乐终极音源指南:一站式获取全网无损音乐的完整解决方案

洛雪音乐终极音源指南:一站式获取全网无损音乐的完整解决方案 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否厌倦了在不同音乐平台之间来回切换,只为找到一首歌的无…

阅读更多
Display Driver Uninstaller深度清理方案:显卡驱动残留问题的终极解决方案(2024版)
2026/6/20 0:59:03

Display Driver Uninstaller深度清理方案:显卡驱动残留问题的终极解决方案(2024版)

Display Driver Uninstaller深度清理方案:显卡驱动残留问题的终极解决方案(2024版) 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitco…

阅读更多
深入解析MC68HC908AS32A的SCI模块:从异步通信原理到寄存器实战配置
2026/6/20 0:59:03

深入解析MC68HC908AS32A的SCI模块:从异步通信原理到寄存器实战配置

1. 项目概述:深入MC68HC908AS32A的异步串行通信核心在嵌入式系统开发中,尤其是面对工业控制、车载电子或智能仪表这类需要设备间稳定对话的场景,串行通信接口(SCI)往往是工程师最可靠的老朋友。它不像并行总线那样需要…

阅读更多
GIT修改用户名
2026/6/20 3:11:17

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/19 20:40:12

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/20 7:34:01

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多