Python 绝技 —— UDP 服务器与客户端

本文深入探讨了 UDP 协议及其与 TCP 的区别,并通过 Python 实例展示了如何创建 UDP 服务器和客户端。内容涵盖 UDP 的无连接、不可靠特性,以及 Python 中的 socket 模块相关 API 使用,包括 bind(), sendto(), recvfrom() 和 close() 函数。通过实例,演示了 UDP 服务器如何处理多客户端通信,展示了 UDP 在进程间通信的简易流程。" 111930470,10539155,Flutter Dio网络请求与拦截器实战教程,"['flutter开发', 'dio库', '网络请求库', '数据拦截', '请求封装']
摘要由CSDN通过智能技术生成

i春秋作家:wasrehpic


0x00 前言

在上一篇文章「Python 绝技 —— TCP 服务器与客户端」中,介绍了传输层的核心协议 TCP ,并运用 Python 脚本的 socket 模块演示了 TCP 服务器与客户端的通信过程。

本篇将按照同样的套路,先介绍传输层的另一个核心协议 UDP,再比较 TCP 与 UDP 的特点,最后借助 Python 脚本演示 UDP 服务器与客户端的通信过程。

0x01 UDP 协议

UDP(User Datagram Protocol,用户数据报协议)是一种无连接、不可靠、基于数据报的传输层通信协议。

  • UDP 的通信过程与 TCP 相比较为简单,不需要复杂的三次握手与四次挥手,体现了无连接
  • UDP 传输速度比 TCP 快,但容易丢包、数据到达顺序无保证、缺乏拥塞控制、秉承尽最大努力交付的原则,体现了不可靠
  • UDP 的无连接与不可靠特性注定无法采用字节流的通信模式,由协议名中的「Datagram」与 socket 类型中的「SOCK_DGRAM」即可体现它基于数据报的通信模式。

为了更直观地比较 TCP 与 UDP 的异同,笔者将其整理成以下表格:

  TCP UDP
连接模式 面向连接(单点通信) 无连接(多点通信)
传输可靠性 可靠 不可靠
通信模式 基于字节流 基于数据报
报头结构 复杂(至少20字节) 简单(8字节)
传输速度
资源需求
到达顺序 保证 不保证
流量控制
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值