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

时间:2012-12-08 22:56:16

标签: 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");

}

但它没有用。那我怎么能这样做呢?

1 个答案:

答案 0 :(得分:4)

  

我该怎么做?

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