若在網路中,需要使客戶端連線的位址為乙個有效的ip位址,這樣就能在兩台計算機之間通訊。除ip位址外,計算機名也可用來代表一台網路中的計算機。
通過訪問主機資料庫實現的。伺服器資料庫介面函式在標頭檔案netdb.h
中定義。與此相關的函式有gethostbyaddr()
和gethostbyname()
兩個,一般形式如下:
struct hostent*
gethostbyaddr
(const
void
* addr,size_t len,
int type)
;struct hostent*
gethostbyname
(const
char
* name)
;
函式的返回值是指向hostent結構
的指標,該結構用於儲存主機名稱等資訊。定義如下:
struct hostent
;
gethostbyaddr()
函式通過ip位址查詢主機資訊,gethostbyname()
通過主機名查詢主機系。如果在主機資料庫中沒有查到相關主機或位址的項,這些函式返回空指標。
與服務及其關聯的埠號有關的資訊可以通過getservbyname(
)函式和getservbyport()
函式查詢。它們的一般形式如下:
struct servent*
getservbyname
(const
char
* name,
const
char
* proto)
;struct servent*
getservbyport
(int port,
const
char
* proto)
;
其中,proto引數指定了用來連線到該項服務的協議,sock_stream型別的tcp連線對應的是tcp,udp連線對應的是udp。函式範滬指是servent結構指標。該結構定義如下:
struct servent
Linux系統程式設計之網路程式設計一
tcp面向連線 如打 要先撥號建立連線 udp是無連線的,即傳送資料之前,不需要建立連線。tcp提供可靠的服務,也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達 udp盡最大努力交付,即不保證可靠交付 每一條tcp連線只能是點到點的 udp支援一對一,一對多,多對一和多對多的互...
Linux系統程式設計 執行緒基礎
執行緒的概念 執行緒是程序內部的一條執行序列,或者執行流。每個程序至少有一條執行緒,稱之為主線程。從 的角度看,就是main函式的函式體。在主線程中可以通過執行緒庫建立其他函式執行緒。在同乙個程序中的執行緒都是併發執行的,並且執行緒的執行順序由系統決定。主線程和函式執行緒沒有本質的區別,只是主線程是...
Linux 系統程式設計
1 i o操作 2 檔案和目錄管理 3 記憶體管理 1 建立匿名記憶體對映 2 對映 dev zero檔案 類unix 作業系統中,dev zero是乙個特殊的檔案,當你讀它的時候,它會提供無限的空字元 null,ascii nul,0x00 其中的乙個典型用法是用它提供的字元流來覆蓋資訊,另乙個常...