In the code segment below,
DatagramPacket rPacket
rPacket = new DatagramPacket(new byte[2000], 2000);
.. do some socket.receive ..
what would be the difference between DatagramPacket.getData().length and DatagramPacket.getLength() in java
In the code segment below,
DatagramPacket rPacket
rPacket = new DatagramPacket(new byte[2000], 2000);
.. do some socket.receive ..
what would be the difference between DatagramPacket.getData().length and DatagramPacket.getLength() in java
The difference is that the first returns the size of the array used to construct the object, which never changes; the second returns the smaller of the length supplied to the constructor and the actual length of the smallest datagram most recently received, which changes on every receive.
From javadoc of class DataGrammPacket
getLength(): Returns the length of the data to be sent or the length of the data
received.
getData(): Returns the data buffer. The data received or the data to be sent
starts from the <code>offset</code> in the buffer,
and runs for <code>length</code> long.
furthe you have to know the setData():
Set the data buffer for this packet. This sets the
* data, length and offset of the packet.
*
* @param buf the buffer to set for this packet
*
* @param offset the offset into the data
*
* @param length the length of the data
* and/or the length of the buffer used to receive data
setData(byte[] buf, int offset, int length)
The Constructor also calls the setData()