J2ME中文教程 7 开发无线网络应用程序[38]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

  message = null;

  notify();

 }

}

7.5    Datagram连接简介

7.5.1   Datagram连接简介

提到Datagram网络那么就要对UDP通讯协议做一个简单的介绍了。前面我们介绍的HTTP协议是属于ISO网络曾的应用层,在它下方传输用的是TCP协议,TCP协议在传输数据的时候,如果数据发生错误,那么将重新传输该错误的部分。但是这样以来常常会浪费很多时间,在一些讲究实时性的通讯过程中,这样做有些不切实际。例如我们在观看网络视频的时候,少量的数据丢失并不会有很严重的影响,因此我们就会用到UDP这样的协议。

 

一个UDP datagram数据包含了地址和数据缓冲区,其中地址是一个URL字符串。在J2ME中发送数据的时候我们使用Datagram.setAddress方法来设置目标地址。(目标地址要包括主机名和端口号)在接收数据的时候,地址是指数据的源地址。数据缓冲区,是一个带有偏移量和长的字节数组,我们的程序可以直接访问该数组,也可以通过DataInputStreamDataOutputStream进行间接的读写。Datagram.getOffset方法对获得数据的偏移量。 通过Datagram.getLengthDatagram.setLength对数据部分的字节长度进行读取和设置。

 

同样的我们要获得连接就需要用到DatagramConnection,而获得的方法也和前面说到的一样的Connector.open(),所不同的是URL应该满足如下的形式:

l         datagram://localhost:5555 这样的话表示建立了一个客户端模式的连接。在指定ip:localhost和指定端口:5555

l         datagram://:5555  这样建立的是一个服务器端模式的连接,在本地的5555端口。

 

建立连接后,我们可以通过DatagramConnectionnewDatagram()方法构造一个Datagram,然后调用DatagramConnectionsend()方法。

 

数据流和消息传送:

流套接字从发送方向接受方发送的是连续的数据流,且不要求标记纪录的界限,数据都以不同的包形式发送,而且各个包中的数据也是不同的。

 

连接和邮寄:

本文关键:J2ME中文教程 7 开发无线网络应用程序
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top