Red de conocimiento del abogados - Ley de patentes - Modificar el tamaño del búfer del socket del sistema Linux

Modificar el tamaño del búfer del socket del sistema Linux

Al realizar la programación del socket, es posible que a veces necesite 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 necesita modificarse es grande (como 500 MB), deberá hacerlo. También es necesario 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 los parámetros del kernel, por lo que es necesario cambiar dos lugares. A continuación se describen las modificaciones que se realizarán al cambiar el búfer de recepción del socket a 500 MB. "Así es como debes aprender Linux" Modifica los parámetros TCP/IP del kernel

Utiliza 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*)amp; recvbuff , sizeof(int)) == -1)

printf("setsocket error\n");

else

printf("setsocket Success\n "); 12345

Si solo cambia el primer punto anterior, un socket solo reservará un buffer de recepción para 63 mensajes si solo cambia el segundo punto, el; El tamaño del búfer estará limitado por rmem_max. Si el búfer requerido es grande, se deben cambiar ambos puntos.