【发布时间】:2022-01-31 08:40:19
【问题描述】:
在 Java 中使用 DatagramPacket 时假设您有一个 byte[1024*1024] 缓冲区。如果您只是在发送/接收时为 DatagramPacket 传递它,那么 Java 会接收 DatagramPacket 块的调用,直到它读取整个兆字节?
我在问 Java 是否会将它拆分,或者只是尝试发送整个被丢弃的东西。
通常情况下,UDP 数据包的大小限制约为 64KB,但我想知道 Java 的 API 是否允许字节数组,如果这是一个限制,并且超大的东西会被丢弃或拆分并为您重新组装。
如果它被丢弃,哪个 API 调用会告诉我可以在 Java 调用中使用的最大数据负载?我听说 IPv6 也有巨型帧,但是 DatagramPacket(或 DatagramSocket)是否支持它,因为 UDP 定义了标头规范?
【问题讨论】: