基于UDP协议的网络编程编程
UDP协议是一种不可靠的网络协议,它在通讯实例的两端各创建一个Socket,但这两个Socket之间并无虚拟链路,这两个Socket只是 发送、接收数据报的对象。Java提供了DatagramSocket对象做为基于UDP协议的Socket,使用DatagramPacket表明 DatagramSocket发送、接收的数据报。服务器
UDP协议基础网络
UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要用来支持那些须要在计算机之间传输数据的网络链接。UDP协议从问世至今已经被使用了不少年,虽然UDP 协议目前应用不如TCP协议普遍,但UDP协议依然是一个很是实用和可行的网络传输层协议。尤为是在一些实时性很强的应用场景中,好比网络游戏、视频会议 等,UDP协议的快速更具备独特的魅力。spa
UDP协议是一种面向非链接的协议,面向非链接指的是在正式通讯前没必要与对方先创建链接,无论对方状态就直接发送。至于对方是否能够接收到这些数据 内容,UDP协议没法控制,所以说UDP协议是一种不可靠的协议。UDP协议适用于一次只传送少许数据、对可靠性要求不高的应用环境。视频
与前面介绍的TCP协议同样,UDP协议直接位于IP协议之上。实际上,IP协议属于OSI参考模型的网络层协议,而UDP协议和TCP协议都属于传输层协议。对象
由于UDP协议是面向非链接的协议,没有创建链接的过程,所以它的通讯效率很高;但也正由于如此,它的可靠性不如TCP协议。游戏
UDP协议的主要做用是完成网络数据流和数据报之间的转换--在信息的发送端,UDP协议将网络数据流封装成数据报,而后将数据报发送出去;在信息的接收端,UDP协议将数据报转换成实际数据内容。网络编程
能够认为UDP协议的Socket相似于码头,数据报则相似于集装箱;码头的做用就是负责发送、接收集装箱,而DatagramSocket的做用则是发送、接收数据报。所以对于基于UDP协议的通讯双方而言,没有所谓的客户端和服务器端的概念。效率
UDP协议和TCP协议简单对好比下:基础
TCP协议:可靠,传输大小无限制,可是须要链接创建时间,差错控制开销大。
UDP协议:不可靠,差错控制开销较小,传输大小限制在64KB如下,不须要创建链接。