int n = 0;
if (0 != getsockopt(iSockFd,SOL_SOCKET,SO_RCVBUF, &n, sizeof(n)))
{
printf("Get socket option failed, errno: %d\n",errno);
}
else
{
printf("Current socket buff len = %d\n", n);
}
n = 225280;
if(0 != setsockopt(iSockFd, SOL_SOCKET, SO_RCVBUF, (const void *)&n, sizeof(n)))
{
printf("setsock err errno %d\n", errno);
}
else
{
printf("setsock opt success\n");
}
n = 0;
if (0 != getsockopt(iSockFd,SOL_SOCKET,SO_RCVBUF, &n, sizeof(n)))
{
printf("Get socket option failed, errno: %d\n",errno);
}
else
{
printf("After setting socket buff len = %d\n", n);
}
Выход есть -Оправа размер буфера не увеличивая
Текущее гнездо любителем Len = 41600
setsock неавтоматического успеха
После установки гнезда бафф LEN = 41600.
Похоже получить размер буфера не увеличивается, любая идея, почему это происходит?
Заранее благодарен!
Платформа может свободно корректировать фактическое значение вверх или вниз. В буфере сокетов не так много места, что большой. – EJP
@Coder: Можете ли вы поделиться версией ядра linux и конфигурациями в следующих файлах, чтобы улучшить изображение:/proc/sys/net/ipv4/tcp_moderate_rcvbuf /proc/sys/net/ipv4/tcp_rmem /proc/sys/net/core/rmem_default /proc/sys/net/core/rmem_max /proc/sys/net/ipv4/tcp_rmem –