java中实现数据报通讯,操纵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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值