当前位置: 首页 > news >正文

UDP网络编程

UDP和TCP

前几节我们提到了计算机网络编程中的TCP编程,TCP和UDP都是计算机机网络通信的传输层中的传输协议,今天我们来学习计算机网络编程中的基于UDP传输协议的网络编程

首先我们要了解TCP和UDP的区别

它们是同属于计算机网络传输层的传输协议

TCP:传输控制协议,全称 Transmission Control Protocol ,是面向连接、可靠的、基于字节流的传输层协议。

UDP:支持无连接的一个传输协议,全称用户数据报协议(User Datagram Protocol)。UDP为应用程序提供了一种无需建立连接就可发送封装的数据包的方法。它不提供复杂的机制,只是利用IP来提供面向无连接的一种通信协议。

TCP是面向连接的,通过三次握手建立连接,四次挥手解除连接;而UDP是面向无连接的,它发送数据是不需要建立连接的,这样大大的提高了它的传输效率,但是不能确保数据是否完整的传输。
TCP是一种可靠的通信方式,TCP通过超时重传、确认应答、拥塞控制等机制来确保数据无差错、不丢包、不重复且有序;而UDP由于是无连接的,它会以最大的传输效率进行数据的传输,但不能保证数据传输的可靠交付,所以就会出现数据的丢失、重复等问题
TCP首部开销大占20个字节,而UDP的首部才占8个字节,开销小
TCP协议提供可靠的、面向连接的传输服务,一般用于文件的传输、邮件的发送以及远程设备的控制;而UDP无需建立连接,传输效率高,不需要接收任何确认回复,可以用于即时的通信,例如QQ或WeChat的语言、视频通话以及抖音、斗鱼等平台的直播
TCP因需要建立连接所以消耗资源大、而UDP不需要建立连接所以消耗资源小
每一条TCP连接只能是点到点的;而UDP不建立连接,所以可以支持一对一,一对多,多对一和多对多的交互通信,也就是可以同时接受多个人的包。

我们可以回顾一下之前TCP编程的流程 需要客户端和服务器端双向的通过三次握手建立连接 通过四次挥手解除连接 整个过程是非常严谨的 所以他本身是可靠的

今天我们学习的UDP编程 它是不需要连接 直接通过ip来传输数据 因此它是不可靠的

TCP编程流程

UDP协议的编程流程

 

UDP服务器端: 

 

 

 UDP客户端:

 

 

编译运行后我们发现可以正常通信

然后我们关闭服务器端 再开启 然后再发送数据 查看是否可以接收

 

 

 这是为什么呢 因为我们前面提到了UDP协议中客户端和服务器并不会建立所谓的连接

发送数据的形式就是 如果我发送了 然后如果你是开启的 那么就可以发送成功

并不会和使用TCP编程时一样发生阻塞

接下来 我们开启第二个客户端给服务器发送数据

 

可以看到我们也可以正常发送 

那么UDP就不存在TCP那种需要处理并发的情况

UDP这里处理这种情况的方式就是 只要你开着 我给你发就可以 并不需要确保成功

那么到这里 我们就学习完成了UDP和TCP传输协议的网络编程

这两种协议各有利弊 我们可以根据情况选择使用 

 

 

http://www.lryc.cn/news/10689.html

相关文章:

  • “合并区间”问题解析及其思考
  • 2023年理想新能源汽车核心部件解密
  • C++ 将一个vector内容赋值给另一个vector,及swap与assign的区别
  • PMP的价值有哪些?
  • OnGUI label 控件||Unity 3D GUI教程||OnGUI Background Color 控件
  • 从 JavaScript 中的数组中删除空对象
  • 【C++】AVL树和红黑树(插入和测试详解)
  • Centos7 安装 Mysql 8.0.32,详细完整教程(好文章!!)
  • Apache Beanutils为什么被禁止使用?
  • sql server执行md5加密的时候,字符串前带N和不带N的结果是不一样的
  • 01Python编译器和编辑器下载
  • CHAPTER 5 自动发现、自动注册、分布式监控、SNMP监控
  • P5311 [Ynoi2011] 成都七中
  • Python 日期和时间格式
  • 电脑和手机的软件推荐
  • 酸回收树脂的应用
  • windows上配置IIS全过程
  • 软考高级信息系统项目管理师系列之十三:项目成本管理
  • HIVE 基础(一)
  • 《狂飙》壁纸太帅,Python自动切换太酷(8)
  • 博客排名的影响是什么? 说明优点、注册方法和推荐网站
  • 全流程GMS地下水数值模拟技能培养及溶质运移反应问题深度解析实践技术
  • 【软件架构设计】SOA/软件架构设计---面向服务的架构(SOA详细解释)
  • erupt框架Ueditor富文本编辑器图片上传出现405异常
  • FILE文件操作
  • SAP PP工单确认完成(CNF)状态取消方法
  • Python 采集 筷 实现视频批量保存
  • 关于linux下环境配置遇到的坑
  • 【Azure 架构师学习笔记】-Azure Logic Apps(7)- 自定义Logic Apps 调度
  • ubuntu20.04配置UR机械臂的仿真环境