Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我recvfrom用来接收 udp 多播数据。据我所知,它在通话中收到的数据报不超过 1 个(对吗?)。那么,对于这样的调用,什么缓冲区大小就足够了?我想这应该是这台机器的 UDP 的 ~MTU,但是我怎么能在运行时知道它呢?
recvfrom
我不想“高估”缓冲区的大小,因为我实际上在场景下有缓冲区的环形缓冲区,我不想花费太多额外的内存。
UDP 数据报的最大大小为 64k。除非您分配大量缓冲区,否则请使用此大小。
IPv4 UDP 数据报有效负载的最大大小为 65507 字节,但除了通过环回之外,您不会得到它们。在真实网络中你能做到的最好的事情是 MTU 负 28。普遍接受的没有分段的实际限制是 534 字节。