我从我的教授那里得知,使用UDP套接字发送的数据报包在较低层被分段,并且可能作为多个数据包到达接收端。例如,如果我将1000字节数据发送到数据报包中,在接收端,它可能会像这样以2字节、500字节、12字节等形式到达。因此,他建议执行多次receive(...)来接收发送方发送的完整1000字节数据包。
后来,当我查阅Java文档中有关datagram socket receive(...)的内容时,有一行文字如下所述:“此方法阻塞,直到接收到数据报。”这是否意味着完整的数据报包已经接收到了,不需要执行多次接收(即使在理论上是这种情况)在我们使用Java时?
请澄清。如果每个数据包都需要执行多次receive(...)才能解决这个问题,请提供如何执行此操作的建议。
后来,当我查阅Java文档中有关datagram socket receive(...)的内容时,有一行文字如下所述:“此方法阻塞,直到接收到数据报。”这是否意味着完整的数据报包已经接收到了,不需要执行多次接收(即使在理论上是这种情况)在我们使用Java时?
请澄清。如果每个数据包都需要执行多次receive(...)才能解决这个问题,请提供如何执行此操作的建议。