1

recvfrom用来接收 udp 多播数据。据我所知,它在通话中收到的数据报不超过 1 个(对吗?)。那么,对于这样的调用,什么缓冲区大小就足够了?我想这应该是这台机器的 UDP 的 ~MTU,但是我怎么能在运行时知道它呢?

我不想“高估”缓冲区的大小,因为我实际上在场景下有缓冲区的环形缓冲区,我不想花费太多额外的内存。

4

2 回答 2

0

UDP 数据报的最大大小为 64k。除非您分配大量缓冲区,否则请使用此大小。

于 2013-05-01T08:57:13.763 回答
0

IPv4 UDP 数据报有效负载的最大大小为 65507 字节,但除了通过环回之外,您不会得到它们。在真实网络中你能做到的最好的事情是 MTU 负 28。普遍接受的没有分段的实际限制是 534 字节。

于 2013-05-01T09:58:50.607 回答