본문 바로가기

공부/tcp/ip 프로그래밍

9장 소켓의 다양한 옵션

반응형

소켓의 다양한 옵션

 protocol level

option name 

설명 

get

set 

 SOL_SOCKET

SO_SNDBUF 

 출력버퍼의 크기

O

O

SO_RCVBUF

입력버퍼의 크기 

O

O

 SO_REUSEADDR

 TIME-WAIT 상태에서도 포트에 대한 소켓을

강제해제하여 소켓을 할당 가능하도록 함

O

O

 SO_KEEPALIVE

 

O

O

 SO_BROADCAST

 

O

O

 SO_DONTROUTE

 

O

O

 SO_OOBINLINE

 

O

O

 SO_ERROR

 

O

X

 SO_TYPE

 

O

X

 IPPROTO_IP

IP_TOS 

 

O

O

 IP_TTL

 

O

O

 IP_MULTICAST_TTL

 

O

O

 IP_MULTICAST_LOOP

 

O

O

 IP_NULTICAST_IF

 

O

O

 IPPROTO_TCP

 TCP_KEEPALIVE

 

O

O

 TCP_NODELAY

Nagle 알고리즘 

O

O

 TCP_MAXSEG

 

O

O

 

리눅스

소켓의 옵션 설정상태의 참조(get)

#include <sys/socket.h>

int getsockopt(int sock, int level, int optname, void* optval, socklen_t* optlen);

성공시 0, 실패시 -1 반환

 

sock : 옵션확인을 위한 소켓의 파일 디스크립터 전달

level : 확인할 옵션의 프로토콜 레벨 전달

optname : 확인할 옵션의 이름 전달

optval : 확인결과의 저장을 위한 버퍼의 주소값 전달

optlen : 네 번째 매개변수 optval로 전달된 주소 값의 버퍼크기를 담고 있는 변수의 주소 값 전달,

           함수호출이 완료되면 이 변수에는 네 번째 인자를 통해 반환된 옵션정보의 크기가 바이트 단위로 계

           산되어 저장된다

 

소켓의 옵션을 변경(set)

#include <sys/socket.h>

int setsockopt(int sock, int level, int optname, const void* optval, socklent_t optlen);

성공시 0, 실패시 -1 반환

 

sock : 옵션변경을 위한 소켓의 파일 디스크립터 전달

level : 변경할 옵션의 프로토콜 레벨 전달

optname : 변경할 옵션의 이름 전달

optval : 변경할 옵션정보를 저장한 버퍼의 주소 값 전달

optlen : 네 번째 매개변수 optval로 전달된 옵션정보의 바이트 단위 크기 전달

 

윈도우

소켓의 옵션 설정상태의 참조(get)

#include <winsock2.h>

int getsockopt(SOCKET sock, int level, int optname, char* optval, int* optlen);

성공시 0, 실패시 SOCKET_ERROR반환

 

sock : 옵션확인을 위한 소켓의 핸들 전달

level : 확인할 옵션의 프로토콜 레벨 전달

optname : 확인할 옵션의 이름 전달

optval : 확인결과의 저장을 위한 버퍼의 주소 값 전달

optlen : 네 번째 매개변수 optval로 전달된 주소 값의 버퍼 크기를 담고 있는 변수의 주소 값 전달, 함수호출이 완료되면 이 변수에는 네 번째 인자를 통해 반환된 옵션정보의 크기가 바이트 단위로 계산되어 저장

 

소켓의 옵션을 변경(set)

#include <winsock2.h>

int setsockopt(SOCKET sock, int level, int optname, const char* optval, int optlen);

sock : 옵션변경을 위한 소켓의 핸들 전달

level : 변경할 옵션의 프로토콜 레벨 전달

optname : 변경할 옵션의 이름 전달

optval : 변경할 옵션정보를 저장한 버퍼의 주소 값 전달

optlen : 네 번째 매개변수 optval로 전달된 옵션정보의 바이트 단위 크기 전달

 

반응형