当前位置:文档之家 > 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 ,为应用程序中采用数据报通信方式进行网络通信。

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

public DatagramPacket(byte ibuft[],int ilength)

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

ibuf[]为接受数据包的存储数据的缓冲区的长度,ilength 为从传递过来的数据包中读取的字节数。当采用第一种构造方法时,接收到的数据从ibuft[0]开始存放,直到整个数据包接收完毕或者将ilength 的字节写入ibuft 为止。采用第二种构造方法时,接收到的数据从ibuft[offse
t]开始存放。如果数据包长度超出了ilength ,则触发

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页)

JAVA网络编程示例代码

JAVA网络编程示例代码_电子/电路_工程科技_专业资料。Java 网络编程说明: 网络编程,分为两种一种是 TCP 、另一种是 UDP 方式。我们分别写一下 TCP、UDP 端的 ...

Java网络编程 (4)

Java 网络编程 (4)作者:刘晓华 发文时间:2004.11.22 Datagram 套接字 Datagram(数据报)是一种尽力而为的传送数据的方式,它只是把数据的目的地记录 在数据包中...

java网络编程试卷及答案

java网络编程试卷及答案_IT/计算机_专业资料。A1、 Java 网络程序位于 TCP/IP ...serverSocket.isClosed(); 4、问题:对于以下代码:int n=socketChannel.read(...

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

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

第四章_Java网络编程技术

本章将介绍Java网络通信原理,重点介绍4个重要的类:URL、 Socket、InetAddress、DatagramSocket,讲解它们在网络 编程中的重要作用,详细讨论与之相关的类及其使用方法,...

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

Java高级编程4(网络编程)_IT/计算机_专业资料。教材第8章 教材第 章 Java网络编程 Java网络编程网络协议 URL编程 socket编程 网络环境中的java 网络环境中的 java...

JAVA网络编程基础习题+部分答案

JAVA网络编程基础习题+部分答案_电子/电路_工程科技_专业资料。Java 网络编程复习...(4)Java 源文件中最多只能有一个 类,其它类的个数不限。 (5)在 Java 中...

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

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

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

8-Java高级编程4(网络编程) 隐藏>> 教材第8章 教材第 章 Java网络编程 Java网络编程网络协议 URL编程 socket编程 网络环境中的java 网络环境中的 java语言是 语...