Red de conocimientos turísticos - Información de alquiler - Modificar el tamaño del buffer del socket del sistema Linux
Modificar el tamaño del buffer del socket del sistema Linux
Al programar sockets, a veces puede ser necesario modificar el tamaño del búfer de recepción del socket. Puede usar la función setsockopt aquí, pero si el búfer que se va a modificar es grande (como 500 MB), debe modificar los parámetros TCP/IP del kernel del sistema. De lo contrario, el tamaño del búfer de recepción estará limitado por el. parámetros del kernel, por lo que es necesario realizar dos modificaciones. La modificación se explica a continuación modificando el búfer de recepción del socket a 500 MB. Así es como se debe aprender Linux.
Modificar los parámetros TCP/IP del kernel
Utilice el comando sysctl en la terminal para modificar el límite máximo de buffer del socket:
sudo sysctl-w net .core .rmem _ max = 5242880001
Utilice la función setsockopt para modificar la opción SO_RCVBUF en el código.
int recvbuff = 500 * 1024 * 1024
if(setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (const char *)& recvbuff, sizeof(int)) == - 1)
printf("setsocket error \ n ");
Otros
printf("setsocket exitoso\ n ");
Para los dos puntos anteriores, cambie solo 1 punto y un socket solo reservará 63 buffers de recepción de mensajes; cambie solo el punto 2, y el tamaño del buffer estará limitado por rmem_max. Si el buffer requerido es grande, estos dos Todo. debe cambiar.