티스토리 뷰

 getsockopt() 예제  


/* buffer_check.c */

#include<stdio.h>
#include<sys/socket.h>
#include<stdlib.h>

int main()
{
    int tcp_sock, udp_sock ;
    int snd_buf, rcv_buf ;
    socklen_t len ;

    tcp_sock = socket(PF_INET, SOCK_STREAM, 0) ;
    udp_sock = socket(PF_INET, SOCK_DGRAM, 0) ;

    if ( getsockopt ( tcp_sock, SOL_SOCKET, SO_SNDBUF, &snd_buf, &len))
    {
        printf("getsockopt() error!\n") ;
        exit(1) ;
    }

    if ( getsockopt ( tcp_sock, SOL_SOCKET, SO_RCVBUF, &rcv_buf, &len))
    {
        printf("getsocket() error!\n") ;
        exit(1) ;
    }
    
    printf("TCP send buffer size : %d\n", snd_buf ) ;
    printf("TCP receive buffer size : %d\n", rcv_buf ) ;

    if ( getsockopt(udp_sock, SOL_SOCKET, SO_SNDBUF, &snd_buf, &len))
    {
        printf("getsockopt() error!\n");
        exit(1) ;
    }

    if ( getsockopt(udp_sock, SOL_SOCKET, SO_RCVBUF, &rcv_buf, &len))
    {
        printf("getsockopt() error!\n");
        exit(1) ;
    }

    printf("UDP send buffer size : %d\n", snd_buf) ;
    printf("UDP receive buffer size : %d\n", rcv_buf) ;

    return 0 ;
}

 실행 결과  

댓글