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

标签 c++ udp multicast

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

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

最佳答案

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

关于c++ - 对于 recvfrom 的 UDP 情况,缓冲区的大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16307489/

相关文章:

java - MulticastSocket 加入/离开组、发送、接收线程安全

java - 如何将c代码移植到java中?启动说明

c++ - Atoi 转换后的 String-> int 的不同输出

Java UDP 套接字回显字节

ios - 是否可以在不使用 ffmpeg 的情况下使用 iOS AVPlayer 播放远程 mp4?

java - MulticastSocket 中 joinGroup() 的用途

c++ - 为什么经常用 FLOPS 来比较数学库?

c++ - 使用嵌套类的链表?

java - 简单的 UDP 阅读器

java - 为什么 DatagramSocket 不通过网络发送多播地址?