2.5 프로토콜의 선택 - socket 함수 protocol 인자
2.3
2.4 에서 프로토콜 체계와 데이터 전송 타입에 대해서 알아보았는데, 세번째 인자로 프로토콜을 설정하는 이유는?
=======================================================================================
프로토콜 체계( socket 함수 첫번째 인자 )가 PF_INET 인 경우 세번째 인자에 올 수 있는 인자값
IPPROTO_TCP : TCP를 기반으로 하는 소켓을 생성
TCP소켓 : 인터넷을 기반으로 하는 연결 지향형 소켓
IPPROTO_UDP : UDP를 기반으로 하는 소켓을 생성
UDP소켓 : 인터넷을 기반으로 하는 비연결 지향형 소켓
음.. 그런데
socket(PF_INET, SOCK_STREAM, *****) 인 경우는 당연히 IPPROTO_TCP를,
socket(PF_INET, SOCK_DGRAM, *****) 인 경우는 IPPROTO_UDP를 쓰는게 아닌가?
사실 첫번째, 두번째 인자를 통해서 원하는 소켓의 정보를 전달할 수 있어서 세번째 인자값에 0을 넣어줘도 알아서 소켓을 생성해 준다.
하지만 하나의 프로토콜 체계 안에 데이터 전송타입까지 같으면서 최종적으로 통신하는 형태가 다른..
(전송 타입은 같지만 그 안에서도 프로토콜이 또 다시 나뉘는 상황) 여러 개의 프로토콜이 존재하는 경우에는
이 세번째 인자가 유용하다. 프로토콜을 조금 더 구체화하기 위해서 사용된다.




최근 덧글