Presentation is loading. Please wait.

Presentation is loading. Please wait.

TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.

Similar presentations


Presentation on theme: "TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다."— Presentation transcript:

1 TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
8장. 소켓 옵션 TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.

2 개요 (1) 소켓 프로그래밍 모델 응용 프로그램 TCP IP UDP IrDA Bluetooth ... 소켓 소켓 코드 프로토콜
구현 코드

3 개요 (2) 소켓 옵션 소켓 옵션의 종류 소켓 함수의 기본 동작을 변경 ① 소켓 코드가 처리하는 옵션
소켓 코드와 프로토콜 구현 코드를 세부적으로 제어 소켓 옵션의 종류 ① 소켓 코드가 처리하는 옵션 옵션을 설정하면 소켓 코드에서 해석하고 처리 ② 프로토콜 구현 코드가 처리하는 옵션 옵션을 설정하면 프로토콜 구현 코드에서 해석하고 처리

4 개요 (3) 소켓 옵션 설정(=변경)하기 int setsockopt ( SOCKET s, int level,
int optname, const char *optval, int optlen ) ; 성공: 0, 실패: SOCKET_ERROR

5 개요 (4) 현재 설정된 소켓 옵션 값 얻기 int getsockopt ( SOCKET s, int level,
int optname, char *optval, int *optlen ) ; 성공: 0, 실패: SOCKET_ERROR

6 소켓 옵션의 종류 (1) level = SOL_SOCKET optname optval get set 설명
SO_BROADCAST BOOL . 브로드캐스팅 데이터 전송 허용 여부 SO_KEEPALIVE 주기적으로 연결 상태 확인 여부 SO_LINGER linger{} 소켓 송신 버퍼에 미전송 데이터가 있을 때 closesocket() 함수의 리턴 지연 시간 설정 SO_SNDBUF SO_RCVBUF int 소켓 송/수신 버퍼의 크기 설정 SO_SNDTIMEO SO_RCVTIMEO 데이터 송/수신 함수 호출 시 타임아웃 값 설정 SO_REUSEADDR 지역 주소(IP 주소, 포트 번호) 재사용 허용 여부

7 소켓 옵션의 종류 (2) level = IPPROTO_IP optname optval get set 설명 IP_HDRINCL
BOOL . 데이터 송신 시 IP 헤더 직접 포함 여부 IP_TTL int IP 패킷의 TTL(time-to-live) 값 설정 IP_MULTICAST_IF IN_ADDR{} 멀티캐스트 패킷을 보낼 인터페이스 선택 IP_MULTICAST_TTL 멀티캐스트 패킷의 TTL 값 설정 IP_MULTICAST_LOOP 멀티캐스트 패킷의 루프백 여부 IP_ADD_MEMBERSHIP IP_DROP_MEMBERSHIP ip_mreq{} 멀티캐스트 그룹 가입과 탈퇴

8 소켓 옵션의 종류 (3) level = IPPROTO_IPV6 optname optval get set 설명
IPV6_HDRINCL BOOL . 데이터 송신 시 IP 헤더 직접 포함 여부 IPV6_UNICAST_HOPS int IP 패킷의 TTL(time-to-live) 값 설정 IPV6_MULTICAST_IF DWORD 멀티캐스트 패킷을 보낼 인터페이스 선택 IPV6_MULTICAST_HOPS 멀티캐스트 패킷의 TTL 값 설정 IPV6_MULTICAST_LOOP 멀티캐스트 패킷의 루프백 여부 IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP ipv6_mreq{} 멀티캐스트 그룹 가입과 탈퇴

9 소켓 옵션의 종류 (4) level = IPPROTO_TCP optname optval get set 설명
TCP_NODELAY BOOL . Nagle 알고리즘 작동 여부

10 SO_BROADCAST 옵션 용도 사용 예 브로드캐스트 데이터 전송 기능 활성화
TCP 소켓에는 사용할 수 없고 UDP 소켓에만 사용 가능 사용 예 BOOL bEnable = TRUE; retval = setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)&bEnable, sizeof(bEnable)); if(retval == SOCKET_ERROR) err_quit("setsockopt()");


Download ppt "TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다."

Similar presentations


Ads by Google