,由于运用流套接字的每一个衔接均要消费肯定的时候,要削减这类开支,收集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.
以上就是Java套接字编程(下)(1)的内容,更多相关内容请关注ki4网(www.ki4.cn)!