增加 UDP 套接字中的接收缓冲区

Increase a recive buffer in UDP socket

本文关键字:缓冲区 UDP 套接字 增加      更新时间:2023-10-16

我正在编写一个应用程序,该应用程序可以传输视频,并且显然为此目的使用了UDP协议。所以我想知道如何增加发送/接收缓冲区的大小,因为目前我可以发送的最大数据大小是 65000 字节。我已经尝试通过以下方式执行此操作:

int option = 262144;
if(setsockopt(m_SocketHandle,SOL_SOCKET,SO_RCVBUF ,(char*)&option,sizeof(option)) < 0)
{
    printf("setsockopt failedn");
}

但它没有奏效。那我该怎么做呢?

我该怎么做?

你不能。IPv4 UDP 数据报的最大大小为 65535-20-8=65507 字节。增加缓冲区大小无法更改这一点。大于路径 MTU(<1500 字节)的数据报将被分段,并且从统计上讲,碎片数据报更有可能丢失,因此无论如何都禁止使用大约 64k 的数据报大小。