当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

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

  • 操纵javascript得到浏览器中的星号密码
  • 操纵Java运算符
  • 传送和操纵Java对象
  • 操纵Java技术将Atom转换为RDF
  • 操纵java成立躲藏文件
  • <b>操纵Java实现网络传输数据压缩的实例</b>
  • 操纵Java来实现域名和IP地址转换的操作
  • <b>操纵Java实现一个简单的递归算法的实例</b>
  • <b>操纵Java编写网络通信程序</b>
  • 操纵Java Applet播放声音文件
  • 操纵Java语言举行Unicode代理编程
  • 操纵Java3D实现三维图象
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .