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

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值