网络编程与计算技术 教学课件 作者 刘化君 第6章 UDP数据报套接字编程.ppt

网络编程与计算技术 教学课件 作者 刘化君 第6章 UDP数据报套接字编程.ppt

ID:50208773

大小:496.50 KB

页数:59页

时间:2020-03-10

网络编程与计算技术 教学课件 作者 刘化君 第6章 UDP数据报套接字编程.ppt_第1页
网络编程与计算技术 教学课件 作者 刘化君 第6章 UDP数据报套接字编程.ppt_第2页
网络编程与计算技术 教学课件 作者 刘化君 第6章 UDP数据报套接字编程.ppt_第3页
网络编程与计算技术 教学课件 作者 刘化君 第6章 UDP数据报套接字编程.ppt_第4页
网络编程与计算技术 教学课件 作者 刘化君 第6章 UDP数据报套接字编程.ppt_第5页
资源描述:

《网络编程与计算技术 教学课件 作者 刘化君 第6章 UDP数据报套接字编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2021年8月26日第6章UDP数据报套接字编程UDP数据报套接字编程主要包括DatagramPacket、DatagramSocket和MulticastSocket三个类的创建与使用。DatagramPacket类描述数据报的地址信息,DatagramSocket类表示客户机和服务器数据报套接字,MulticastSocket类则描绘了能进行多点传送的数据报套接字。这三个类均位于java.net包中。本章的重点是应用用户数据报协议(UserDatagramProtocol,UDP)方式实现异地间各种数

2、据的传输,主要讨论Java环境下如何实现UDP数据报套接字编程问题。6.1UDP通信概述用户数据报协议(UDP)是很多应用程序常用的传输协议。也就是说,UDP是在计算机上规定用户以数据报方式进行通信的协议,它提供了应用程序之间传送数据报的基本机制。1.UDP协议的特点1)UDP向应用系统提供了一种发送封装原始IP数据报的方法,并且在发送时无需建立连接。这不仅避免了建立连接和释放连接的麻烦,而且也减少了开销和发送数据之前的时延。2)利用协议端口,UDP能够区分在同一台主机上运行的多个应用进程;使用校验和机制

3、,UDP协议在把数据向应用进程提交之前,先对数据做一些差错检查。3)UDP用户数据报只有8B的头部开销,比TCP的20B头部要短得多。4)UDP不使用拥塞控制,不提供端到端的确认和重传功能,也不保证数据报一定能到达目的端,因此称为不可靠协议。所以主机也不需要维持具有许多参数、复杂的连接状态表。5)通过UDP可以发送组播数据,所以使用组播服务的应用程序都建立在UDP之上。6)不同的网络应用使用不同的协议。例如,HTTP使用TCP,而普通文件传输协议(TrivialFileTransferProtocol,T

4、FTP)则使用UDP。UDP现在还常用于多媒体通信,如IP电话、实时视频会议、流式存储音频与视频等。2.UDP数据报套接字通信在服务器和客户机之间传递信息有两种方式,一是建立连接的通信方式,它首先需要先建立连接,然后再传递数据,所有的数据是以包(packet)的形式按照一定的顺序发送和接收的,最后关闭连接,这一通信过程是由管道(channel)来保证的。另一种是无连接的通信方式,这种方式不建立连接,而是在服务器和客户机之间利用UDP数据报来发送和接收相互独立的数据包。在这种无连接通信(UDP方式)中,所有

5、的包都需要包含有该包完整的源和目标信息,以便指明该数据包的走向。java.net包中的DatagramPacket类、DatagramSocket类和MulticastSocket类等为编写应用于网络之间UDP方式的数据通信实例提供了便利。在Java网络UDP数据报套接字编程中,在网络上发送和接收数据包需要使用Java.net类库中提供的这些类。简单地讲,使用DatagramSocket类和DatagramPacket类来编写发送端和接收端程序就可以实现数据报的发送和接收。使用数据报通信模式在准备接收一个

6、数据报时,接收端只需要提供一个缓冲区,以便存放接收到的数据,缓冲区的最大容量仅受限于允许的数据报包大小,一般小于64KB。数据包抵达时,通过DatagramSocke类作为信息起源地的IP地址以及端口号会自动初始化。在发出一个数据包时,DatagramPacket类不仅需要包含正式的数据,也要包含IP地址以及端口号,以决定数据包到达的目的结点。6.2DatagramPacket类DatagramPacket类是进行数据报通信的基础,用于处理报文,它将Byte数组、目标地址、目标端口等数据包装成报文或者将报

7、文拆卸成Byte数组。DatagramPacket类的对象代表了一个UDP数据包。通过UDP发送数据时,先要根据发送的数据生成一个DatagramPacket对象,然后通过DatagramPacket对象的send()方法发送这个对象。接收时,先要根据接收数据的缓冲区生成一个publicfinalclassDatagramPacketextendsObjectDatagramPacket对象,然后通过DatagramPacket对象的receive()方法接收这个对象的数据内容。6.2.1构造函数1.接收

8、数据报的构造函数publicDatagramPacket(byte[]buffer,intlength);publicDatagramPacket(byte[]buffer,intoffset,intlength);其中,buffer是接收数据报的缓冲区,length为数据报中数据的字节数(数据包长度),offset指明数据报的位移量。这两个构造函数功能是由接收缓冲区(byte[]字节数组与它的长度length)构造一个用于接

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。