더북(TheBook)

protocol 파라미터는 소켓이 데이터 전송에 실제로 사용할 프로토콜의 종류를 명시하는 데 쓴다. 전송 계층 프로토콜 또는 각종 인터넷 유틸리티 네트워크 계층 프로토콜 중 하나를 선택할 수 있다. 보편적으로 protocol 파라미터에 지정한 값은 외부로 나가는 IP 헤더의 프로토콜 필드에 직접 기록된다. 그러면 수신 측 운영체제가 이 값으로 패킷에 포함된 데이터를 어떻게 해석해야 할지 판단하게 된다. 표 3-3은 protocol 파라미터에 사용할 수 있는 값의 목록이다.

▼ 표 3-3 소켓 생성 시 지정할 수 있는 프로토콜 값

매크로

필요 소켓 종류

의미

IPPROTO_UDP

SOCK_DGRAM

UDP 데이터그램 패킷

IPPROTO_TCP

SOCK_STREAM

TCP 세그먼트 패킷

IPPROTO_IP 또는 0

상관없음

주어진 소켓 종류의 디폴트 프로토콜을 사용

 

알아두면 편리한 것은 프로토콜을 0으로 지정하면 운영체제가 알아서 소켓 형식에 맞는 디폴트 프로토콜을 골라준다는 점이다. 즉, IPv4 UDP 소켓을 만들려면 다음과 같이 호출하면 된다.

SOCKET udpSocket = socket(AF_INET, SOCK_DGRAM, 0);

그리고 TCP 소켓은 이렇게 만든다.

SOCKET udpSocket = socket(AF_INET, SOCK_DGRAM, 0);

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.