书签 分享 收藏 举报 版权申诉 / 75
上传文档赚钱

类型Java网络程序设计章-课件1.ppt

  • 上传人(卖家):ziliao2023
  • 文档编号:7176162
  • 上传时间:2023-10-06
  • 格式:PPT
  • 页数:75
  • 大小:4.37MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Java网络程序设计章-课件1.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Java 网络程序设计 课件
    资源描述:

    1、第6章 UDP Socket 第6章 UDP Socket 6.1 UDP 6.2 UDP Socket 6.3 IP广播 6.4 IP组播 第6章 UDP Socket 6.1 UDP6.1 UDP6.1.1 UDP6.1.1 UDP的概念的概念UDP是TCP/IP参考模型中传输层的无连接协议,提供面向事务的、简单的、不可靠的数据传送服务。UDP协议的最早规范于1980年发布,编号为RFC768。UDP与TCP均属于TCP/IP体系结构中传输层的协议,通过应用层与传输层之间的端口为上层的应用程序提供并发传输服务。第6章 UDP Socket 虽然UDP是一种不可靠的网络协议,但是在很多情况下

    2、UDP协议会非常有用。因为UDP具有TCP所望尘莫及的数据传输速度优势。在TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,使TCP传输速度受到了严重的影响。反观UDP,由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使数据传输速度得到了保证。UDP与TCP之间的主要区别如表6-1所示。第6章 UDP Socket 第6章 UDP Socket 正因为UDP的特点,在为网络通信软件选择使用协议的时候,选择UDP必须要谨慎。在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重,很多仅在局域网环境下使用的通信软件采用

    3、UDP协议。又由于UDP不属于连接型协议,具有资源消耗小、处理速度快的优点,因而通常音频、视频和消息数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如各种类型的聊天室软件,如ICQ、QQ和视频电话会议系统均使用的UDP协议。相对于数据传输的可靠性而言,某些应用更加注重实际性能,为了获得更好的使用效果(例如,更高的画面帧刷新速率),往往可以牺牲一定的可靠性(例如,画面质量)。采用UDP应用层的协议如表6-2所示。第6章 UDP Socket 第6章 UDP Socket 6.1.2 6.1.2 信息传播的形式信息传播的形式信息在网络中传播的形式有三种

    4、,分别是:单播(UniCast)、广播(BroadCast)和组播(MultiCast,或称为多播),如图6-1所示。采用TCP作为传输协议,信息传递只能实现点到点的单播形式,如果必须使用TCP作为传输协议而实现向多个用户发送相同的消息,就必须采用轮流循环的方式进行点到点的单播,从而降低了信息的实时性也浪费了带宽。利用UDP作为传输协议,则可以实现所有形式的传播。第6章 UDP Socket 图6-1 单播、广播、组播示意图 第6章 UDP Socket 单播指客户端与服务器之间的点到点连接,即当客户端发出请求时,服务器发送独立单播流。单播的优点:服务器及时响应客户机的请求;服务器针对每个客户

    5、不同的请求发送不同的数据,容易实现个性化服务。单播的缺点:服务器针对每个客户机都需要发送数据流,服务器流量=客户机数量客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负。现有的网络带宽是金字塔结构,即城际省际主干带宽仅仅相当于其所有用户带宽之和的5。如果全部使用单播协议,将造成网络主干不堪重负。现在的P2P应用就已经使主干经常阻塞,只要5的客户在全速使用网络,其他人就无法使用了,而将主干扩展20倍几乎是不可能的。第6章 UDP Socket 广播指主机之间“一对所有”的通信模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管是否需要

    6、),由于其不用路径选择,所以其网络成本可以很低廉。广播的优点:网络设备简单,维护简单,布网成本低廉;由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。广播的缺点:无法针对每个客户的要求和时间及时提供个性化服务;网络允许服务器提供数据的带宽有限,客户端的最大带宽服务总带宽。例如有线电视的客户端的线路支持100个频道(如果采用数字压缩技术,理论上可以提供500个频道),即使服务商有更大的财力配置更多的发送设备、改成光纤主干,也无法超过此极限。也就是说广播无法向众多客户提供更多样化、更加个性化的服务;广播禁止在Internet宽带网上传输,因为会产生广播风暴,造成网络阻塞。第6章 UD

    7、P Socket 组播指主机之间“一对一组”的通信模式,也就是加入了同一个组的主机可以接收到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。组播的优点:需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载,具备广播所具备的优点;由于组播协议是根据接收者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。IP协议允许有2亿6千多万个组播,所以其提供的服务可以非常丰富;此协议和单播协议一样允许在Internet宽带网上传输。组播的缺点:与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QoS加以弥补。现行

    8、网络虽然都支持组播的传输,但在客户认证、QoS等方面还需要完善,这些缺点在理论上都有成熟的解决方案,只是需要逐步推广应用到现存网络当中。第6章 UDP Socket 6.2 UDP Socket6.2 UDP Socket6.2.1 DatagramSocket6.2.1 DatagramSocket类和类和DatagramPacketDatagramPacket类类在J2SDK以前的版本里,TCP和UDP套接字都使用Socket类。在J2SDK中专门提供了UDP的套接字类,在类库中有DatagramSocket类和DatagramPacket类来实现对UDP数据报的传输。DatagramSo

    9、cket类用于实现UDP通信的套接字,实现端到端的通信,完成数据报的接收和发送。其特点是数据发送端和接收端不需要事先建立通信连接,甚至可以是在接收端未准备好或者不存在的情况下,发送端也可以进行消息发送,类定义如图6-2所示。第6章 UDP Socket 图6-2 DatagramSocket类定义 第6章 UDP Socket 其构造方法有:public DatagramSocket(),在本地系统任一空闲的UDP端口建立UDP Socket对象;public DatagramSocket(int port),在指定端口建立UDP Socket对象;public DatagramSocket(

    10、int port,InetAddress address),在指定InetAddress对象和端口建立UDP Socket对象。其主要方法有:public void send(DatagramPacket sp)throws IOException,发送一个数据报;public synchronized void receive(DatagramPacket rp)throws IOException,接收一个数据报;public void close(),关闭当前UDP套接字。第6章 UDP Socket 第6章 UDP Socket 代码说明如下:第5行声明一个DatagramSocket

    11、对象;第615行循环测试指定的UDP端口范围;第8行在指定的UDP端口建立一个UDP套接字,如果成功则说明该端口空闲,否则说明该端口已被占用。运行结果如图6-3所示。DatagramPacket类是构造一个用于接收或者发送的数据报,采用字节数组的形式存储数据,类定义如图6-4所示。第6章 UDP Socket 图6-3 扫描本地UDP端口 第6章 UDP Socket 图6-4 DatagramPacket类定义 第6章 UDP Socket 其提供的构造方法:public DatagramPacket(byte buf,int length):该构造方法中包括了用于存储数据的字节数组和可存储

    12、的字节数,主要用于接收数据报;public DatagramPacket(byte buf,int length,InetAddress address,int port):该构造方法中包括存储数据的字节数组、可存储的字节数、接收端的地址,以及接收端的端口号,通常被用于发送数据报。第6章 UDP Socket 其主要方法:public synchronized getDate():从数据报中获得数据;public synchronized getLength():从数据报中获得数据长度;public synchronized setDate(byte buf):设置数据报的数据;public

    13、synchronized setLength(int length):设置数据报的长度。使用UDP实现通信,需要分别建立通信的发送端和接收端程序。第6章 UDP Socket 第6章 UDP Socket 第6章 UDP Socket 第6章 UDP Socket 代码说明如下:第4行创建UDP套接字对象;第5行创建UDP数据报对象;第6行创建数据接收方的InetAddress对象;第7行定义数据接收方的端口号;第8行定义发送和接收缓存字节数组,容量为256 B;第916行启动本地的UDP 1080端口;第19行创建接收数据报对象,绑定接收字节数组长度为256;第20行执行receive()方

    14、法接收数据;第6章 UDP Socket 第21行通过getData()方法从收到的数据报中提取数据;第2325行提取收到的数据报中的对方IP和端口信息;第2627行首先通过getBytes()方法将字符串转换为字节数组,然后再构造发送数据报,在参数中指明接收方的IP和PORT,这个地址信息从第2324行获得;第28行使用send()将数据报发送出去。运行结果如图6-5所示。第6章 UDP Socket 图6-5 接收端运行结果 第6章 UDP Socket 在接收端首先建立接收缓存,使用定义字节数组,该数组的尺寸通常为8的整数倍,例如256,512,1024,2048等;将该字节数组带入Da

    15、tagramPacket构造接收数据报;通过DatagramSocket.receive()接收数据报;利用DatagramPacket.getData()方法从数据报中提取出字节数组,并且将字节数组作为String的参数构造可读的字符串。从运行结果中,可以得到发送端的IP地址是127.0.0.1,使用的UDP端口是1065,接收的信息是“从发送端发送信息”。第6章 UDP Socket 第6章 UDP Socket 第6章 UDP Socket 第6章 UDP Socket 代码注释如下:第11行本地开启UDP 1065端口;第1923行构造发送数据报,并通过send()发送该数据报;第25

    16、26行构造接收数据报,并通过receive()接收数据报。运行结果如图6-6所示。第6章 UDP Socket 图6-6 发送端运行结果 第6章 UDP Socket 在发送端首先构造发送缓存,采用字节数组,该数组尺寸同接收缓存;如果要发送字符串信息,需要使用String.getBytes()将待发送的字符串转化为字节数组;将字节数组作为DatagramPacket对象的参数构造发送数据报;通过DatagramSocket.send()方法将数据报发送出去。从运行结果中,可以得到接收端的IP地址是127.0.0.1,使用的UDP端口是1080,发送端得到的信息是“从接收端返回确认”。当一个客户

    17、端同时接收和发送信息时,要注意发送和接收缓冲一定要区分开,并且在每次接收或者发送之前,要清除原有内容,否则会残留不必要的信息。第6章 UDP Socket 6.2.2 TCP Socket6.2.2 TCP Socket与与UDP SocketUDP Socket的区别的区别TCP和UDP两种传输协议都在网络世界中发挥重要的作用。应用层进程根据不同网络通信的环境和特点,实际网络通信软件设计需要在UDP和TCP两种协议之间权衡。在Java中进行编程时,有以下区别:1 1消息传递的形式消息传递的形式TCP是面向连接的服务,只能实现点到点的传递。UDP可以实现单播、广播和多播。在实现广播时,数据报目

    18、的地址为指定网络中最大的IP地址,例如202.117.128.255,具体由网络规划情况而定。在实现多播时,数据报目的地址为D类地址。第6章 UDP Socket 2 2所使用的所使用的SocketSocket在TCP传输模式下,使用ServerSocket用于监听指定端口,保证实现TCP的三次握手;使用Socket建立通信的通道。在UDP传输模式下,使用DatagramSocket直接实现传输消息的包。第6章 UDP Socket 3 3SocketSocket定义的位置不同定义的位置不同在TCP模式下,由于存在三次握手、传输、关闭等多个阶段,所以Socket定义应该为类的属性,便于在所有的

    19、方式中进行操作。在UDP模式下,是尽最大可能交付,并不需要事先建立连接,属于单传输阶段的形式,所以在发送数据通信的类中进行定义即可,表现为在响应发送按钮事件处理和接收数据的事件处理方法中的局部变量。第6章 UDP Socket 4 4是否存在监听及方式是否存在监听及方式在TCP模式下,存在三次握手机制,利用ServerSocket持续监听指定端口是否有连接请求到达。在UDP模式下,直接从指定端口发送或接收数据。5 5输入输入/输出流的定义输出流的定义在TCP模式下,由于属于管道类型的流操作,所以利用Socket.getInputStream()和Socket.getOutputStream()

    20、,分别从指定的Socket上获得输入和输出流。在UDP模式下,按数据报文的形式进行数据通信,不存在输入/输出流。第6章 UDP Socket 6 6发送数据的方式发送数据的方式在TCP模式下,首先定义输出流,在该输出流的基础上直接发送字符串:DataOutputSrteam os=new DataOutputStream(Socket.getOutputStream();os.writeUTF(“Hello!”);os.flush();在UDP模式下,创建待发送的数据包二进制数组,打包为UDP数据包,通过send发送指定数据包:buf=“Hello”.getBytes();p=new Data

    21、gramPacket(buf,buf.length,address,1080);socket.send(p);第6章 UDP Socket 7 7接收数据的方式接收数据的方式在TCP模式下,首先生成输入流,然后按行的方式进行读取:DataInputStream in=new DataInputStream(clientSocket.getInputStream();inputLine=in.readUTF()在UDP模式下,首先生成接收数据的UDP缓存数组,然后利用receive方法,接收数据到指定的缓存中:p=new DatagramPacket(buf,buf.length);socket

    22、.receive(p);通常,TCP协议被用于有传输可靠性要求的应用,UDP被广泛用于局域网传输和传输数据实时性要求高的应用中。第6章 UDP Socket 6.3 IP 6.3 IP 广广 播播UDP允许对指定的网络发送广播消息。途径是通过将数据报发送到该网络广播地址上实现。广播地址的计算与主机上网卡配置的IP地址和网络掩码有关,如使用ifconfig.exe显示目标计算机的网卡IP配置信息如图6-7所示。图6-7 网卡配置信息 第6章 UDP Socket 从图6-7中得到主机的IP地址是115.155.24.24,其子网掩码是255.255.255.0,默认的出口网关是115.155.2

    23、4.254。对于常规的A,B,C三类IP分类方法,获得广播地址很容易。一个IP地址包括网络号和主机号两个部分,共24位。当主机地址全为“0”时表示该主机所处的网络地址,当主机地址全为“1”时表示为指定网络的广播地址。通过IP地址与网络掩码进行按位与运算,可以得到该主机所处网络号为:115.155.24.0,则广播地址为115.155.24.255,如图6-8所示。第6章 UDP Socket 图6-8 IP地址与子网掩码按位与运算得到网络号 第6章 UDP Socket 当网络管理员在局域网中划分了子网时,则在A、B、C分类的基础上,将主机位数再次划分为子网号和主机号两个部分。例如:IP地址是

    24、115.155.24.24,而子网掩码是255.255.255.192,即IP地址中第四段的最高两位被用于标识子网。这时该IP地址所处的网络号为115.155.24.0,但是广播地址是115.155.24.63。如果在IP地址分配时采用了CIDR的分配方法,则网络号和广播地址的计算都需要注意。例如IP地址是115.155.24.24/28,标识一共使用了28位作为网络号,而剩余的4位作为主机号,则该主机所处的网络号为115.155.24.16,广播地址是115.155.24.31。第6章 UDP Socket【例例6-46-4】使用UDP向一个广播地址发送数据。该例与例6-3的唯一差别在于所使

    25、用的目标地址为网络地址,而例6-3中的目标地址为主机地址。第6章 UDP Socket 第6章 UDP Socket 代码注释如下:第19行构造目标计算机所在的网络地址(115.155.24.255)的InetAddress对象。这时接收客户端就可以同时接收单播信息和本网络中的广播信息,如图6-9所示。第6章 UDP Socket 图6-9 接收端同时接收单播和广播信息 第6章 UDP Socket 通用的广播地址是255.255.255.255。在选择广播地址时,首先要根据所提供的子网掩码判断该IP地址是采用哪一种的IP划分方式,否则就可能计算广播地址错误,导致将数据报发送给了错误的网络。第

    26、6章 UDP Socket 6.4 IP 6.4 IP 组组 播播6.4.1 6.4.1 组播的概念组播的概念TCP协议属于面向连接的点到点通信,在服务器同时连接多个客户端时,需要采用消息循环发送的形式,不仅增加了消息的延迟,而且还浪费了网络带宽。而UDP不仅可以实现消息的单播和广播,还可以实现消息的组播。第6章 UDP Socket IP组播(IP multicasting)技术,也称多址广播或多播,是一种允许一台或多台主机作为多播源,发送单一数据包到多台主机的TCP/IP网络技术。多播作为一点对多点的通信,是节省网络带宽的有效方法之一。IP组播是对硬件组播的抽象,是对标准IP网络层协议的扩

    27、展。它通过使用特定的IP组播地址,按照最大投递的原则,将IP数据报传输到一个组播群组(MulticastGroup)的主机集合。在网络音频/视频广播的应用中,当需要将一个节点的信号传送到多个节点时,无论是采用重复点对点通信方式,还是采用广播方式,都会严重浪费网络带宽,只有多播才是最好的选择。多播能使一个或多个多播源只把数据包发送给特定的多播组,而只有加入该多播组的主机才能接收到数据包。目前,IP多播技术被广泛应用在网络音频/视频广播、音频点播/视频点播(Audio On Demand/Video On Demand,AOD/VOD)、网络视频会议、多媒体远程教育、“PUSH”技术(如股票行情等

    28、)和虚拟现实游戏等方面。第6章 UDP Socket 要实现IP多播通信,要求介于多播源和接收者之间的路由器、集线器、交换机以及主机均需支持IP多播。目前,IP多播技术已得到硬件、软件厂商的广泛支持。(1)要求主机支持IP多播通信的平台包括Windows 95以后的版本、Linux/Unix、Mactoshi等操作系统,运行这些操作系统的主机都可以进行IP多播通信。此外,新生产的网卡也几乎都提供了对IP多播的支持。(2)目前大多数集线器、交换机只是简单地把多播数据当成广播来发送接收,但一些中高档交换机提供了对IP多播的支持。例如,在3COM SuperStack 3 Swith 3300交换机

    29、上可启用802.1p或IGMP多播过滤功能,只为已侦测到IGMP数据报的端口转发多播数据报。第6章 UDP Socket(3)多播通信要求多播源节点和目的节点之间的所有路由器必须提供对Internet组管理协议(Internet Group Management Protocol,IGMP)、多播路由协议(如PIM,DVMRP等)的支持。由于得到硬件的支持,加入到一个多播组的主机,可以处于同一个局域网中,也可以是城域网或者广域网中支持相同体系结构的任一台主机。使用同一个IP多播地址接收多播数据报的所有主机构成了一个主机组,称为多播组,如图6-10所示。第6章 UDP Socket 图6-10

    30、多播组 第6章 UDP Socket 当一台主机欲加入某个多播组时,会发出“主机成员报告”的IGMP消息通知多播路由器。当多播路由器接收到发给那个多播组的数据时,便会将其转发给所有的多播主机。多播路由器还会周期性地发出“主机成员查询”的IGMP消息,向子网查询多播主机,若发现某个多播组已没有任何成员,则停止转发该多播组的数据。此外,当支持IGMP v2的主机退出某个多播组时,还会向路由器发送一条“离开组”的IGMP消息,以通知路由器停止转发该多播组的数据。但只有当子网上所有主机都退出某个多播组时,路由器才会停止向该子网转发该多播组的数据。一个多播组的成员是随时变动的,一台主机可以随时加入或离开

    31、多播组,多播组成员的数目和所在的地理位置也不受限制,一台主机也可以属于几个多播组。此外,不属于某一个多播组的主机也可以向该多播组发送数据报。第6章 UDP Socket 6.4.2 6.4.2 组播地址组播地址IPv4地址可划分为A、B、C、D、E和一些特殊的地址,如第4章表4-1所示。现在由于计算机数量急剧增加,IPv4地址已经不够分配,所以逐渐放弃了IP地址的A,B,C分类法,采用划分子网和超网方式分配IP地址,但是D类地址保留了下来。IP多播通信必须依赖于IP多播地址,在IPv4中它是一个D类IP地址。D类IP地址第一个字节以“1110”开始,范围从224.0.0.0239.255.25

    32、5.255。它是一个专门保留的地址,它并不指向特定的网络,代表网络中一台虚拟的主机。D类IP地址的组成如图6-11所示。第6章 UDP Socket 图6-11 D类IP地址 第6章 UDP Socket D类IP地址并不是随意被使用的,这个地址范围被划分为局部链接多播地址、预留多播地址和管理权限多播地址三类,如下:局部链接多播地址范围在224.0.0.0224.0.0.255,这是为路由协议和其他用途保留的地址,路由器并不转发属于此范围的IP包,多用于在LAN中组播;预留多播地址为224.0.1.0238.255.255.255,可用于全球范围(如Internet)或网络协议;管理权限多播地

    33、址为239.0.0.0239.255.255.255,可供组织内部使用,类似于私有IP地址,不能用于Internet,可用于限制多播范围。第6章 UDP Socket 6.4.3 MulticastSocket6.4.3 MulticastSocket类类在Java语言中,采用MulticastSocket类来实现组播套接字,其类定义如图6-12所示。图6-12 MulticastSocket类定义 第6章 UDP Socket 其构造方法:public MulticastSocket()throws IOException:声明一个空的对象。public MulticastSocket(in

    34、t port)throws IOException:启动本地指定UDP端口。其主要方法:public void joinGroup(InetAddress multicastAddress)throws IOException:加入某个多播组;public void leaveGroup(InetAddress multicastAddress)throws IOException:离开某个多播组;第6章 UDP Socket public synchronized void send(DatagramPacket p)throws IOException:向加入的多播组发送数据;public

    35、 synchronized void receive(DatagramPacket p)throws IOException:从加入的多播组接收数据。在下面的组播通信实例中,发送消息和接收数据的客户端都加入到组播组中,程序需要在例6-2和例6-3的基础上进行修改。第6章 UDP Socket 第6章 UDP Socket 第6章 UDP Socket 第6章 UDP Socket 代码注释如下:第4行设置组播地址为224.0.0.1,该组播地址仅能在局域网中使用,路由器不转发该地址组播数据,限制了数据传播的范围;第6行声明一个MulticastSocket对象;第12行在指定端口启动一个UDP

    36、 端口组播套接字;第13行创建组播地址的InetAddress对象;第14行将本地创建的组播套接字加入到组播组中;第2329行实现循环向组播组发送数据,值得注意的是即使发送端不属于组播组也可以向任意组播组发送数据。第6章 UDP Socket 第6章 UDP Socket 第6章 UDP Socket 代码注释如下:第46行声明组播地址、组播端口和组播套接字;第1016行加入到组播组,只有参加组播组,接收方才能收到数据;第1928行从组播组中接收数据。运行结果如图6-13所示。第6章 UDP Socket 图6-13 接收端显示信息 第6章 UDP Socket 图6-14 发送端出现的错误

    37、如果当前的网络接入设备未能正确设置,例如,没有设置合法的IP地址,使用组播通信时,在发送端可能出现如图6-14所示的错误。第6章 UDP Socket 在接收端可能出现如图6-15所示的错误。图6-15 接收端出现的错误 第6章 UDP Socket 实际上,在组播通信中,接收数据必须在组播组中,而发送者可以不在组中,却能直接向组播组发送数据。组播组中接收者不仅可以从组中接收数据,也可以同时接收单播数据和广播数据。假设接收方IP地址为192.168.0.1,并加入到组播组224.0.0.1中。由发送方分别向接收方IP、组播地址224.0.0.1和广播地址192.168.0.255发送数据。按如

    38、下修改:address=InetAddress.getByName(“192.168.1.100”);/单播地址port=1080;buf=“第”+i+“次从发送端送出的 单播 信息”.getBytes();/待发送的单播数据p=new DatagramPacket(buf,buf.length(),address,port);ds.send(p);Thread.sleep(2000);第6章 UDP Socket address=InetAddress.getByAddress(“224.0.0.1”);/组播地址port=1080;buf=“第”+i+“次从发送端送出的 组播 信息”.ge

    39、tBytes();/待发送的组播数据p=new DatagramPacket(buf,buf.length(),address,port);ds.send(p);Thread.sleep(2000);address=InetAddress.getByAddress(“192.168.1.255”);/广播地址port=1080;buf=“第”+i+“次从发送端送出的 广播 信息”.getBytes();/待发送的广播数据p=new DatagramPacket(buf,buf.length(),address,port);ds.send(p);Thread.sleep(2000);注意在以上三个代码段的第1行,在创建信息接收目标主机的InetAddress对象时,使用了不同的IP地址,而接收端仍然使用例6-6,运行结果如图6-16所示。第6章 UDP Socket 图6-16 一个接收端同时接收单播、组播和广播信息 第6章 UDP Socket 感感 谢谢第6章 UDP Socket 谢谢,精品课件资料搜集

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Java网络程序设计章-课件1.ppt
    链接地址:https://www.163wenku.com/p-7176162.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库