当前位置:文档之家 > Java网络编程 (4)

Java网络编程 (4)

Java网络编程(4)

作者:刘晓华发文时间:2004.11.22

Datagram套接字

Datagram(数据报)是一种尽力而为的传送数据的方式,它只是把数据的目的地记录在数据包中,然后就直接放在网络上,系统不保证数据是否能安全送到,或者什么时候可以送到,也就是说它并不保证传送质量。

1 UDP套接字

数据报(Datagram)是网络层数据单元在介质上传输信息的一种逻辑分组格式,它是一种在网络中传播的、独立的、自身包含地址信息的消息,它能否到达目的地、到达的时间、到达时内容是否会变化不能准确地知道。它的通信双方是不需要建立连接的,对于一些不需要很高质量的应用程序来说,数据报通信是一个非常好的选择。还有就是对实时性要求很高的情况,比如在实时音频和视频应用中,数据包的丢失和位置错乱是静态的,是可以被人们所忍受的,但是如果在数据包位置错乱或丢失时要求数据包重传,就是用户所不能忍受的,这时就可以利用UDP协议传输数据包。在Java的http://www.doczj.com/doc/8168d821dd36a32d737581d2.html 包中有两个类DatagramSocket和DatagramPacket,为应用程序中采用数据报通信方式进行网络通信。

使用数据包方式首先将数据打包,http://www.doczj.com/doc/8168d821dd36a32d737581d2.html 包中的DategramPacket类用来创建数据包。数据包有两种,一种用来传递数据包,该数据包有要传递到的目的地址;另一种数据包用来接收传递过来的数据包中的数据。要创建接收的数据包,通过DatagramPackett 类的方法构造:

public DatagramPacket(byte ibuft[],int ilength)

public DatagramPacket( byte ibuft[],int offset ,int ilength)

ibuf[]为接受数据包的存储数据的缓冲区的长度,ilength为从传递过来的数据包中读取的字节数。当采用第一种构造方法时,接收到的数据从ibuft[0]开始存放,直到整个数据包接收完毕或者将ilength的字节写入ibuft为止。采用第二种构造方法时,接收到的数据从ibuft[of
fset]开始存放。如果数据包长度超出了ilength,则触发IllegalArgument-Exception。不过这是RuntimeException,不需要用户代码捕获。示范代码如下:

ibuf[]为接受数据包的存储数据的缓冲区的长度,ilength为从传递过来的数据包中读取的字节数。当采用第一种构造方法时,接收到的数据从ibuft[0]开始存放,直到整个数据包接收完毕或者将ilength的字节写入ibuft为止。采用第二种构造方法时,接收到的数据从ibuft[offset]开始存放。如果数据包长度超出了ilength,则触发IllegalArgument-Exception。不过这是RuntimeException,不需要用户代码捕获。示范代码如下:

byte[ ] buffer=new byte[8912];

DatagramPacket datap=new DatagramPacket(buffer ,buffer.length( ));

创建发送数据包的构造方法为:

public DatagramPacket(byt ibuf[],int ilength,InetAddrss iaddr,int port)

public DatagramPacket(byt ibuf[],int offset , int ilength,InetAddrss iaddr,int port)

下载Word文档免费下载:

Java网络编程 (4)下载

(共15页)

8-Java高级编程4(网络编程)

8-Java高级编程4(网络编程) - 教材第8章 Java网络编程 网络协议 URL编程 socket编程 网络环境中的java ? java语言是Internet上的世界语。 借助H...

实验四java网络编程与文件IO

实验四java网络编程与文件IO_计算机软件及应用_IT/计算机_专业资料。实验四一.实验目的 网络编程与文件 IO 1. 学习编写基于 Socket 通信与本地文件 IO 的程序。...

JAVA网络编程实验指导书

JAVA网络编程实验指导书 - 广州大学计算机科学与教育软件学院 2014 年 7 月 第 1 页共 12 页 目录 实验一:UDP 套接字编程(4 学时) 实验二:TCP 套接字...

第10章-java网络编程

第10章-java网络编程 - Java语言程序设计 1 第十章 Java网络编程 1. 2. 3. 4. 5. 6. 概述 URL应用 InetAddress类 NetworkInte...

JAVA网络编程技术习题

JAVA网络编程技术习题 - 1、 Java 语言的特点:1)平台无关性 2)面向对象 3)多线程 4)具有编译型语言和解释型语言的优点 5)Applet 功能以及与此相关的图形功能...

第十章 Java网络编程

Java网络编程》课程设计任务书 - Java 网络编程课程设计任务书 一、题目: 基于 Socket 通信(TCP)的简单聊天室 二、目的与要求 1. 目的: 此次课程设计时间为...

《Java网络编程》课程设计任务书

java第10章-网络编程(马皓) - Java语言程序设计 马皓 mah@pku.edu.cn 1 第十章 Java网络编程 1. 概述 2. URL应用 3. Socket应用 4...

java第10章-网络编程(马皓)

4.3网络编程 - Java 语言程序设计 学习领域四:编程技术应用 任务4.3 网络编程 学习目标 1 2 任务内容 相关知识 3 4 任务实施 技能提高 Designed B...