UDP发送端:
DatagramPacket dp=new DatagramPacket(buf, length, address, port);
其中,buf指所需要发送的数据,length指的是包的长度(官方文挡解释)。
问题1:若buf长度为很大,远大于length,那么上面的语句是将数据打包成一个数据丢失的数据包还是多个长度为length的数据包?
UDP接收端:
DatagramSocket ds=new DatagramSocket(10086);
byte[] buf=new byte[1024];
int length=buf.length;
DatagramPacket p=new DatagramPacket(buf, length);
ds.receive(p);
问题2:DatagramPacket用来接收长度为length的数据包,若发送端数据包长度为1024,接收端在此的length设为100,数据是否会丢失?
问题3:receive(p)方法到底接收的是一个包还是所有的包?