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

Java套接字编程(下)[Java编程]

赞助商链接



  本文“Java套接字编程(下)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

自寻址套接字(Datagram Sockets)

,因为利用流套接字的每个衔接均要耗费一定的时间,要削减这种开销,网络API供应了第二种套接字:自寻址套接字(datagram socket),自寻址利用UDP发送寻址信息(从客户程序到服务程序或从服务程序到客户程序),差别的是可以通过自寻址套接字发送多IP信息包,自寻址信息包含在自寻址包中,此外自寻址包又包含在IP包内,这就将寻址信息长度限制在60000字节内.图2显示了位于IP包内的自寻址包的自寻址信息.

与TCP保证信息到达信息目的地的方法差别,UDP供应了别的一种办法,假如自寻址信息包没有到达目的地,,那么UDP也不会恳求发送者重新发送自寻址包,这是因为UDP在每一个自寻址包中包含了错误检测信息,在每个自寻址包到达目的地之后UDP只举行简单的错误查抄,假如检测失利,UDP将丢弃这个自寻址包,也不会从发送者那边重新恳求替换者,这与通过邮局发送信件类似,发信人在发信之前不需求与收信人成立衔接,一样也不能保证信件能到达收信人那边

自寻址套接字工作包含下面三个类:DatagramPacket, DatagramSocket,和 MulticastSocket.DatagramPacket对象描绘了自寻址包的地址信息,DatagramSocket表示客户程序和服务程序自寻址套接字,MulticastSocket描绘了能举行多点传送的自寻址套接字,这三个类均位于java.net包内.

DatagramPacket类

在利用自寻址包之前,你需求首先熟习DatagramPacket类,地址信息和自寻址包以字节数组的方法同时压缩入这个类成立的对象中

DatagramPacket有数个构造函数,即便这些构造函数的情势差别,但普通情形下他们都有两个共同的参数:byte [] buffer 和 int length,buffer参数包含了一个对保存自寻址数据包信息的字节数组的引用,length表示字节数组的长度.

最简单的构造函数是DatagramPacket(byte [] buffer, int length),这个构造函数肯定了自寻址数据包数组和数组的长度,但没有任何自寻址数据包的地址和端口信息,这些信息可以背面通过调用办法setAddress(InetAddress addr)和setPort(int port)增添上,下面的代码示范了这些函数和办法.

byte [] buffer = new byte [100];
DatagramPacket dgp = new DatagramPacket (buffer, buffer.length);
InetAddress ia = InetAddress.getByName ("www.disney.com");
dgp.setAddress (ia);
dgp.setPort (6000); // Send datagram packet to port 6000.

假如你更喜好在调用构造函数的时刻同时包含地址和端口号,可以利用DatagramPacket(byte [] buffer, int length, InetAddress addr, int port)函数,下面的代码示范了别的一种挑选.

byte [] buffer = new byte [100];
InetAddress ia = InetAddress.getByName ("www.disney.com");
DatagramPacket dgp = new DatagramPacket (buffer, buffer.length, ia,
6000);

有时刻在成立了DatagramPacket对象后想改变字节数组和他的长度,这时可以通过调用setData(byte [] buffer) 和 setLength(int length)办法来实现.在任什么时刻候都可以通过调用getData() 来得到字节数组的引用,通过调用getLength()来得到字节数组的长度.下面的代码示范了这些办法:

byte [] buffer2 = new byte [256];
dgp.setData (buffer2);
dgp.setLength (buffer2.length);

关于DatagramPacket的更多信息请参考SDK文档.


  以上是“Java套接字编程(下)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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