2011-02-11 2 views
7

방금 ​​네트워크 프로그래밍으로 시작했습니다. 소켓 함수를 보았을 때 PF_INET과 다른 것들은 AF_INET을 사용한다. wikipedia에서 보았을 때,이 디자인은 다른 프로토콜 제품군에 의해 다른 주소 패밀리의 사용을 가능하게하기 위해 사용되었다고합니다. 여러 주소 유형을 지원하는 프로토콜 제품군이 있습니까?네트워크 프로그래밍 : 소켓 기능 : 주소 패밀리 대 프로토콜 패밀리

Address family not supported by protocol family 

이 여러 주소 가족을 지원하는 프로토콜이 존재 뜻 : 내가 프로토콜 제품군을 Vs 패밀리 주소를 검색 할 때

또한이 오류를 건너 왔어요?

나는 NS 주소가 무엇이 statement

you shouldn't necessarily expect to be able to use NS addresses with ARPA Internet protocols 

우연히 만났다?

감사합니다.

답변

3

socket에 대한 Windows 설명서에는 주소 패밀리가 첫 번째 인수라고 나와 있습니다. 필자의 리눅스 박스에있는 man 페이지는 그것이 프로토콜 군이어야한다고 말한다. 리눅스 버전은 플랫폼에 독립적 인 관점에서 약간 더 정확 해 보입니다. 이론 상으로는 소켓은 프로토콜 패밀리를 가지고 있고 주소는 주소 패밀리를 가지고 있으며, 둘은 호환 가능해야합니다.

실제로, 내장 프로토콜 용 PF_AF_ 매크로는 동일한 값 (Linux 및 Windows 모두)을 갖습니다. 모든 공용 프로토콜 패밀리는 하나의 주소 패밀리를 가지고 있기 때문에 대부분의 OS에서 비슷한 이야기라고 생각합니다. (당신은 IP가 2를 가질 것이라고 생각 하겠지만, IPv4와 IPv6을위한 별도의 프로토콜 군이있다.) 이것은 C의 상대적으로 약한 타이핑과 함께 그것들이 꽤 많이 교환되어 사용될 수있게한다.

모든 운영체제 또는 일부 타사 드라이버가 지원하는 프로토콜 등에 대해서는 보증 할 수 없음에 유의하십시오. 이러한 경우 특정 플랫폼의 설명서를 참조하십시오.

"NS 주소"에 대한 설명은 Xerox의 선사 시대 인 Network Systems protocol (TCP/IP와 같은 프로토콜군요. 현대 PC에서는 별개이고 호환되지 않고 사용되지 않음)의 일부입니다. 고풍적 인 시스템으로 작업하지 않는다면 사용하지 못할 것입니다. 그게 내가보기에 예를 들어서 지켜진 이유입니다.

관련 문제