컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - Linux 시스템 소켓 버퍼 크기 수정

Linux 시스템 소켓 버퍼 크기 수정

소켓 프로그래밍을 수행할 때 소켓의 수신 버퍼 크기를 수정해야 하는 경우가 있습니다. 여기서는 setockopt 함수를 사용할 수 있지만 수정해야 하는 버퍼가 큰 경우(예: 500MB) 또한 시스템 커널 매개변수를 수정해야 합니다. 그렇지 않으면 수신 버퍼 크기가 커널 매개변수에 의해 제한되므로 두 곳을 변경해야 합니다. 다음은 소켓 수신 버퍼를 500MB로 변경하여 수정해야 할 사항을 설명합니다. "이것이 Linux를 배우는 방법입니다." 커널 TCP/IP 매개변수 수정

소켓 최대 버퍼 제한을 수정하려면 터미널에서 sysctl 명령을 사용하세요:

sudo sysctl -w net .core.rmem_max=5242880001 코드에서 SO_RCVBUF 옵션을 수정하려면 setockopt 함수를 사용하세요.

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 성공\n "); 12345

위의 첫 번째 지점만 변경하면 소켓은 두 번째 지점만 변경하면 63개 메시지에 대한 수신 버퍼만 예약합니다. 버퍼 크기는 rmem_max에 의해 제한됩니다. 필요한 버퍼가 크면 두 지점을 모두 변경해야 합니다.

上篇: DC 풍력발전기를 만들었는데, 전압을 5V로 안정시키는 방법을 모르겠습니다. 최소 발전량은 3V이고 최대 발전량은 16V입니다. 회로도 요청 下篇: 불산즈멍인재유한회사 온라인 인재채용
관련 내용