Linux系統程式設計 網路程式設計基礎(三)

2021-09-12 18:56:05 字數 1179 閱讀 7180

若在網路中,需要使客戶端連線的位址為乙個有效的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 其中的乙個典型用法是用它提供的字元流來覆蓋資訊,另乙個常...