min's devlog

SO_RCVBUF 옵션 본문

Linux/TCP IP Socket Programming

SO_RCVBUF 옵션

값진 2021. 4. 4. 01:49

SO_RCVBUF

  - SO_RCVBUF 옵션을 설정하면 커널의 수신 버퍼와 송신 버퍼의 크기를 조정할 수 있다. 

 

예제

디폴트 수신 버퍼 크기를 출력하고, 크기를 1024로 조절했을 때 변경된 수신 버퍼의 크기도 출력한다.

컴파일 : gcc -o rcvbuf  chg_rcvbuf.c
실행 : ./rcvbuf

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<unistd.h>

int main()
{
        int s;
        int val,len;

        if((s=socket(AF_INET, SOCK_STREAM,0)) < 0) {
                perror("socket fail");
                exit(1);
        }

        len=sizeof(val);
        if(getsockopt(s, SOL_SOCKET, SO_RCVBUF,&val,&len)<0){
                perror("socket fail");
                exit(1);

        }
        printf("디폴트 수신버퍼크기 : %d\n",val);
        val=1024;
        setsockopt(s,SOL_SOCKET,SO_RCVBUF,&val,sizeof(val));
        getsockopt(s,SOL_SOCKET,SO_RCVBUF,&val,&len);
        printf("1024로 변경한 수신버퍼 크기: %d\n",val);
        return 0;
}

 

실행 결과

디폴트 수신버퍼크기 : 131072
1024로 변경한 수신버퍼 크기: 2240

'Linux > TCP IP Socket Programming' 카테고리의 다른 글

Signal Handler  (0) 2021.04.04
Signal 처리  (0) 2021.04.04
멀티캐스트 프로그래밍  (0) 2021.03.28
소켓 옵션 종류(2)  (0) 2021.03.28
소켓옵션 종류  (0) 2021.03.27
Comments