下载此文档

利用UDP Sockets技术实现IP多点传送2(转中华技术网)(1).txt


文档分类:通信/电子 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
作者:studyboy
email: studyboy@
日期:2001-7-22 21:55:31
DatagramPacket类
我们可以使用DatagramPacket类创建一个用于发送的数据报,而当接收UDP数据报时,可以使用DatagramPacket类读取数据报中的数据,发送者及其它信息。
为了创建一个数据报并发送到远地系统,可以使用下面的构造器:
Public DatagramPacket(byte ibuf,int length,InetAddress iaddr,int iport,);
ibuf是编码信息数据的字节数组,它的长度length就是数据报放在其中的字节数组的长度,Address对象,存储着接收方的主机名和IP地址等信息,iport标识数据报发送到接收主机的端口。
为了接收数据报,必须使用DatagramPacket构造器,其原型为:public DatagramPacket(byte ibuf,int ilength);ibuf是指接收的数据报的数据部分, ilength是该部分数据的长度。如果 ilength 小于机器接收的UDP数据报的尺寸,多余的字节将被Java忽略。
另外,类中有一些方法(method)可以让我们得到一些相关的信息:
public int getLength(); //得到数据报中数据块的字节尺寸
public bytegetData();//得到接收数据报中的数据
public InetAddress getAddress(); //为发送者提供一个 InetAddress对象
public int getPort(); //得到UDP端口
值得注意的是,TCP sockets的编程中,我们无须将传送的数据分块,然而,当我们创建一个基于UDP的网络通讯应用程序时,必须创建一套方法,在运行时刻决定需分割的数据报的长度。对于TCP/IP,最大的数据报可以含有65507字节的数据,然而,主机仅能接收最多548字节的数据,支持8192字节的大数据报的平台是利用IP层对数据报进行分割的。如果在传送期间,任何含有IP报文的一个数据块丢失,都会造成整个UDP数据报的丢失,因此,我们在确定应用中数据报尺寸时,对其尺寸的合理性一定要谨慎。
下面就是分割数据的一个例子:
//循环地从输入流input中读一行数据
while((nextLine=())!=null){
//定义一个空数据报,其尺寸为512
mcastBuffer=new byte[512];
//如果读入的数据的长度大于定义的数据报的长度,
//则使用定义的长度,否则使用读入数据的长度
if(()>){
sendLength=;
}else {
sendLenth=();
}
//将读入的数据转换为byte类型
lineData=();
//将数据复制到用于创建数据报的byte数组
for(int i=0;i<sendLength;i++){

利用UDP Sockets技术实现IP多点传送2(转中华技术网)(1) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息