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传输协议的网络编程

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

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值