对于UDP的recvfrom情况,缓冲区的大小是多少?

时间:2013-04-30 19:24:56

标签: c++ udp multicast

我正在使用recvfrom来接收udp组播数据。据我所知,它在调用中接收的数据报不超过1个(这是正确的吗?)。那么这个调用的缓冲区大小是多少呢?我想它应该是〜这台机器的UDP MTU,但我怎么能在运行时知道呢?

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

IPv4 UDP数据报有效负载的最大大小为65507字节,但除了通过环回之外,您不会获得它们。在真实网络中你可以做的最好的是MTU减去28.普遍接受的没有碎片的实际限制是534字节。