|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net网页编程和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点
自寻址套接字(DatagramSockets)
,由于利用流套接字的每一个毗连均要消费必定的工夫,要削减这类开支,收集API供应了第二种套接字:自寻址套接字(datagramsocket),自寻址利用UDP发送寻址信息(从客户程序到服务程序或从服务程序到客户程序),分歧的是能够经由过程自寻址套接字发送多IP信息包,自寻址信息包括在自寻址包中,别的自寻址包又包括在IP包内,这就将寻址信息长度限定在60000字节内。显现了位于IP包内的自寻址包的自寻址信息。
<br>
与TCP包管信息抵达信息目标地的体例分歧,UDP供应了别的一种办法,假如自寻址信息包没有抵达目标地,,那末UDP也不会哀求发送者从头发送自寻址包,这是由于UDP在每个自寻址包中包括了毛病检测信息,在每一个自寻址包抵达目标地以后UDP只举行复杂的毛病反省,假如检测失利,UDP将丢弃这个自寻址包,也不会从发送者那边从头哀求替换者,这与经由过程邮局发送函件类似,发信人在发信之前不必要与收信人创建毗连,一样也不克不及包管函件能抵达收信人那边
自寻址套接字事情包含上面三个类:DatagramPacket,DatagramSocket,和MulticastSocket。DatagramPacket对象刻画了自寻址包的地点信息,DatagramSocket暗示客户程序和服务程序自寻址套接字,MulticastSocket刻画了能举行多点传送的自寻址套接字,这三个类均位于java.net包内。
DatagramPacket类
在利用自寻址包之前,你必要起首熟习DatagramPacket类,地点信息和自寻址包以字节数组的体例同时紧缩进这个类创立的对象中
DatagramPacket无数个机关函数,即便这些机关函数的情势分歧,但一般情形下他们都有两个配合的参数:byte[]buffer和intlength,buffer参数包括了一个对保留自寻址数据包信息的字节数组的援用,length暗示字节数组的长度。
最复杂的机关函数是DatagramPacket(byte[]buffer,intlength),这个机关函数断定了自寻址数据包数组和数组的长度,但没有任何自寻址数据包的地点和端口信息,这些信息能够前面经由过程挪用办法setAddress(InetAddressaddr)和setPort(intport)增加上,上面的代码树模了这些函数和办法。
byte[]buffer=newbyte[100];
DatagramPacketdgp=newDatagramPacket(buffer,buffer.length);
InetAddressia=InetAddress.getByName("www.disney.com");
dgp.setAddress(ia);
dgp.setPort(6000);//Senddatagrampackettoport6000.
假如你更喜好在挪用机关函数的时分同时包含地点和端标语,可使用DatagramPacket(byte[]buffer,intlength,InetAddressaddr,intport)函数,上面的代码树模了别的一种选择。
byte[]buffer=newbyte[100];
InetAddressia=InetAddress.getByName("www.disney.com");
DatagramPacketdgp=newDatagramPacket(buffer,buffer.length,ia,
6000);
偶然候在创立了DatagramPacket对象后想改动字节数组和他的长度,这时候能够经由过程挪用setData(byte[]buffer)和setLength(intlength)办法来完成。在任什么时候候都能够经由过程挪用getData()来失掉字节数组的援用,经由过程挪用getLength()来取得字节数组的长度。上面的代码树模了这些办法:
byte[]buffer2=newbyte[256];
dgp.setData(buffer2);
dgp.setLength(buffer2.length);
关于DatagramPacket的更多信息请参考SDK文档。
<p>
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net网页编程和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点 |
|