linux下socket接收缓冲区有多大?如何查看和修改,望高手赐教
发布网友
发布时间:2022-04-30 20:25
我来回答
共2个回答
热心网友
时间:2023-10-10 14:36
int buflen = 65536*10;
设置读缓存大小
if(0!=setsockopt(m_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,4))
{
return OS_ERROR;
}
设置写缓存大小
if(0!=setsockopt(m_sendUdpSock,SOL_SOCKET,SO_SNDBUF,&buflen,4))
{
return OS_ERROR;
}
socklen_t getnumlen=4;
读取写缓存大小
if(0!=getsockopt(g_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,&getnumlen))
{
printf("\n%s\n",strerror(errno));
return OS_ERROR;
}
热心网友
时间:2023-10-10 14:36
典型的缓冲区大小缺省值是8192字节或者更大。
对于不同的实现,缺省值大小可能会有很大的差别。
查看:
getsockopt():
修改:
setsockopt():
需要注意的一点是,set操作要在connect()或者listen()之前。
具体函数怎么使用你可以参考《unix网络编程》7.5节基本套接口选项。