操纵Java实现数据报通讯历程[Java编程]
本文“操纵Java实现数据报通讯历程[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
数据报(Datagram)使网络层数据单元在介质上传输信息的一种逻辑分组格局,它是一种在网络中传达的、独立的、自身包含地址信息的消息,它可否到达目的地,到达的时间,到达时内容能否会改变不能精确知道的.它的通讯双方是不需求成立衔接的,关于一些不需求很高质量的利用程序来说,数据报通讯是一个非常好的挑选.在Java的java.net包中有两个类DatagramSocket和DatagramPacket,为利用程序中采取数据报通讯方法举行网络通讯.
下面,我想具体注释在Java中实现客户端与服务器之间数据报通讯的办法,请看:
1、客户端利用程序的工作流程
1) 首先要成立数据报通讯的Socket,我们可以通过成立一个DatagramSocket对象来实现它,在Java中DatagramSocket类有以下两种构造办法:
a)public DatagramSocket() 构造一个数据报socket,并使其与本地主机任一可用的端口衔接.若打不开socket则抛出SocketException非常.
b) public DatagramSocket(int port) 构造一个数据报socket,并使其与本地主机指定的端口衔接.若打不开socket或socket无法与指定的端口衔接则抛出SocketException非常.
2) 成立一个数据报文包,用来实现无衔接的包传送服务.每个数据报文包是用DatagramPacket类来成立,DatagramPacket对象封装了数据报包数据,包长度,目标地址,目标端口.作为客户端要发送数据报文包,要调用DatagramPacket类以以下情势的构造函数成立DatagramPacket对象,将要发送的数据和包文目的地址信息放入对象之中.
DatagramPacket(byte bufferedarray[],int length,InetAddress address,int port)即构造一个包长度为length的包传送到指定主机指定端口号上的数据报文包,参数length必须小于等于bufferedarry.length
DatagramPacket类供应了四个类来获得信息
a) public byte[] getData() 返回一个字节数组,包含收到或要发送的数据报中的数据
b) public int getLength() 返回发送或接纳到的数据的长度
c) public InetAddress getAddress() 返回一个发送或接纳此数据报包文的机械的IP地址
d) public int getPort() 返回发送或接纳数据报的远程主机的端口号.
3)成立完DatagramSocket和DatagramPacket对象,便可以发送数据报文包了.发送是通过调用DatagramSocket对象的send办法实现,它需求以DatagramPacket对象为参数,将方才封装进DatagramPacket对象中的数据构成数据报发出.
4)当然,我们也可以接纳数据报文包,为了接纳从服务器返回的后果数据报文包,我们需求成立一个新的DatagramPacket对象,这就需求用到DatagramPacket的另一种构造方法DatagramPacket(byte bufferedarray[],int length),即只需指明存放接纳的数据报的缓冲区和长度.调用DatagramSocket对象的receive()办法来完成接纳数据报的工作,此时需求将上面成立的DatagramPacket对象作为参数,该办法会一向阻塞知道收到一个数据报文包,此时DatagramPacket的缓冲区中包含的就是接纳到的数据,数据报文包中也包含发送者的IP地址,发送者机械上的端口号等信息.
5)处理接纳缓冲区内的数据,获得服务后果.
以上是“操纵Java实现数据报通讯历程[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |