java UDP数据包装包拆包的疑惑

java UDP通信 DatagramPacket装包拆包的问题
我以为他的通信是先把bytes装包,然后传递到接收端,在拆成bytes
为什么接收端也创建了一个空的bytes构成的DatagramPacket接受?
这就像是先把bytes装包,再把一个有数据的DatagramPacket赋给了一个空数据的DatagramPacket,然后再拆成bytes
多了一个空的DatagramPacket让我有点费解,之前那个放好数据的发生了什么?为什么不能直接用?