基于UDP协议的Socket编程

本文介绍了UDP协议的特性,包括其无连接性和不可靠性,对比TCP协议展示了UDP在速度和开销上的优势。接着阐述了UDP适用于实时通信场景的原因,并通过Java中的DataProgramPacket和DataProgramSocket类说明了如何进行UDP编程。最后,概述了客户端和服务端的编程流程。
摘要由CSDN通过智能技术生成

UDP即(user datagram protocal,用户数据报协议),我们很多人应该都了解过TCP(transp control protocal,传输控制协议),那么可能有人会问了,为什么有了TCP协议还要UDP协议呢?

这是由于UDP协议和TCP协议之间不同的特点,决定了这两种协议的适合的应用场景的不同。接下来就由我来为大家介绍一下UDP协议,并给出UDP编程的Java实现。

一、UDP协议

用户数据报协议(UDP,User Datagram Protocal)是一种面向无连接的传输层协议,提供不可靠的数据传输服务。
无连接是指:
在传输数据之前客户端和服务器端并不建立连接。
不可靠是指:
1、并不保证数据包完全发送出去。
2、不保证数据包能被接收方接收。
3、也不保证接收方接收到的数据包的顺序和发送方的发送顺序一致。

那么为什么这么不负责的协议还有存在的意义呢?原来UDP协议的无连接不可靠特性是牺牲了可靠性而在其他方面提升性能。
1、提高数据发送速度。
2、节省开销。
因为,TCP协议是一种可靠的,如果数据在传输过程中出现异常,比如发送的数据包丢失,数据包失真,那么TCP协议会要求数据包重新发送。
而且TCP协议是面向连接的数据发送前客户端和服务器端要建立连接,数据发送后客户端和服务器端要断开连接。
以上特点都会影响数据包发送的速度,增加服务器和客户端的开销。
所以我们可以很容易地明白,为什么说UDP的面向无连接不可靠特性能够提速节省开销
经过上述的分析我们可以对UDP协议和TCP协议各自的优缺点都有了一个很清楚的认识,那么什么情况下使用UDP协议,什

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值