每個套接字域都有獨特的位址格式。對於乙個
af_unix
套接字來說,它的位址是由乙個包含在
sys/un.h
標頭檔案裡的
sockaddr_un
結構描述的。該結構的定義為:
struct sockaddr_un ;
因為不同型別的位址都需要傳遞到對套接字程序處理的系統呼叫裡去,所以定義各種位址格式時使用的結構也都很相似,每個結構的開始都是乙個定義位址型別(即套接字域)的資料項。
sun_family_t
是由x/open
技術規範定義的,在
linux
系統上,它被宣告為乙個
short
型別。sun_path
給出的路徑長度是有限制的,
linux
規定其最長不能超過
108個字元。因為位址結構在長度方面是不固定的,所以許多套接字呼叫都要用到或輸出乙個用來複製特定位址結構的長度值。
af_inet
域裡的套接字位址是由乙個定義在
netinet/in.h
標頭檔案裡的
sockaddr_in
結構確定的。該結構的定義為:
struct sockaddr_in ; 其中
internet
位址是netinet/in.h
標頭檔案中定義的另乙個結構體,該結構體的定義為:
struct in_addr ; 乙個
af_inet
套接字完全可以由它的域、
ip位址和埠號確定下來。從應用程式的角度看,各種套接字的行為就像是檔案描述符,用乙個獨一無二的整數就可以把它們表示出來。
網路程式設計 03 套接字和位址
socket到底是什麼?網路程式設計中到底如何理解socket,先看下面的圖 上面的圖表達了網路程式設計中客戶端和伺服器模型的核心邏輯。伺服器端 首選伺服器端要先初始化號好socket,之後伺服器端執行bind函式將自己的服務能力繫結在乙個特定的位址和埠上,緊接著伺服器端呼叫listen函式將原先的...
Unix網路程式設計 1 套接字位址結構
ubuntu usr include netinet in.h includestruct in addr struct sockaddr in sin len 結構體長度字段。sin family 協議族字段。可取的值為 af unix 本地通訊 af inet ipv4 af int6 ipv6...
UNIX網路程式設計 三 套接字位址結構
1.ipv4套接字位址結構 ipv4套接字位址以sockaddr in命名,定義在標頭檔案中。位址結構 struct in addr struct sockaddr in 2.通用套接字位址結構 對於大多數套接字函式 比如 bind,connect,sendto等等 的引數通常是套接字位址結構的引用...