C++ 在UDP套接字中增加接收缓冲区
我正在写一个应用程序,它传输视频,显然是使用UDP协议来实现这个目的。 所以我想知道如何增加发送/接收缓冲区的大小,因为目前我可以发送的最大数据大小是65000字节。 我已经尝试了以下方法: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"); }
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左右的数据报