Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在UDP套接字中增加接收缓冲区_C++_Sockets_Udp - Fatal编程技术网

C++ 在UDP套接字中增加接收缓冲区

C++ 在UDP套接字中增加接收缓冲区,c++,sockets,udp,C++,Sockets,Udp,我正在写一个应用程序,它传输视频,显然是使用UDP协议来实现这个目的。 所以我想知道如何增加发送/接收缓冲区的大小,因为目前我可以发送的最大数据大小是65000字节。 我已经尝试了以下方法: int option = 262144; if(setsockopt(m_SocketHandle,SOL_SOCKET,SO_RCVBUF ,(char*)&option,sizeof(option)) < 0) { printf("setsockopt failed\n"); }

我正在写一个应用程序,它传输视频,显然是使用UDP协议来实现这个目的。 所以我想知道如何增加发送/接收缓冲区的大小,因为目前我可以发送的最大数据大小是65000字节。 我已经尝试了以下方法:

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

}
int选项=262144;
if(setsockopt(m_SocketHandle,SOL_SOCKET,SO_RCVBUF,(char*)和option,sizeof(option))<0)
{
printf(“setsockopt失败\n”);
}
但它没有起作用。那我怎么做呢

我怎么做

你不能。IPv4 UDP数据报的最大大小为65535-20-8=65507字节。增加缓冲区大小不能改变这一点。大于路径MTU(<1500字节)的数据报将被碎片化,碎片化的数据报在统计上更容易丢失,因此无论如何,禁止使用64k左右的数据报