2011-02-11 91 views
7

我剛開始用網絡編程。在查看套接字函數時,有些使用PF_INET,而其他使用AF_INET。在wikipedia看來,它說這樣的設計被用來使不同的協議族使用不同的地址系列。目前是否有任何支持多種地址類型的協議族?網絡編程:Socket函數:地址族VS協議族

我也碰到這個錯誤來了,當我在尋找地址族Vs的協議族:

Address family not supported by protocol family 

這是否意味着有支持多個地址家庭協議?

我碰到這個statement

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

什麼是NS地址來的?

謝謝。

回答

3

socket的Windows文檔說,地址族是第一個參數;我的Linux機器上的手冊頁說這應該是協議族。從平臺不可知的角度來看,Linux版本似乎更加正確 - 理論上,套接字具有協議族,地址具有地址族,並且兩者應該兼容。

但實際上,內置協議的PF_AF_宏具有相同的值(在Linux和Windows中)。我想大多數操作系統都是類似的故事,因爲所有的通用協議系列都有一個地址系列。 (你會認爲IP會有兩個,但是沒有,IPv4和IPv6有不同的協議族。)(這與C的相對較弱的鍵入)允許它們幾乎可以互換使用。

請注意,無法保證所有操作系統或某些第三方驅動程序支持的協議都適用於此情況。在這些情況下,您應該查閱針對您的特定平臺的文檔。據我所知,至於什麼是「NS地址」,它們是施樂公司的史前Network Systems protocol(一種類似於TCP/IP的協議族,但與現代PC不同且不兼容且未使用)的一部分。除非您使用古老的系統,否則您不會看到它們在使用中;爲什麼這個例子不在我身邊。

相關問題