linux下網路程式設計之相互轉化函式對

2021-06-03 00:22:03 字數 1129 閱讀 9193

一 ip位址的網路位元組序長整形表示 與 點分十進位制字串表述的相互轉化函式

inet_ntoa/inet_addr

inet_aton

以下這對函式使用與ipv4和ipv6

inet_pton

inet_ntop

二 網路位元組序 與 主機位元組序相互轉化函式

htonl

ntohl

htons

ntohs

三 主機名字 到 主機ip位址的轉化函式

1.使用gethostname()函式 它返回你程式所執行的機器的主機名字。#include ;

int gethostname(char *hostname, size_t size);

引數很簡單:hostname 是乙個字元陣列指標,它將在函式返回時儲存

主機名。size是hostname 陣列的位元組長度。

函式呼叫成功時返回 0,失敗時返回 -1,並設定 errno

2.然後可以使用 gethostbyname()  以獲得你的機器的ip 位址。

#include ;

struct hostent *gethostbyname(const char *name);

返回乙個指向 struct hostent 的指標。這個資料結構原型如下所示:

struct hostent ;

#define h_addr h_addr_list[0]

以下是這個資料結構的詳細說明:

struct hostent:

h_name – 位址的正式名稱。

h_aliases – 空位元組-位址的預備名稱的指標。

h_addrtype –位址型別; 通常是af_inet。

h_length – 位址的位元長度。

h_addr_list – 零位元組-主機網路位址指標。網路位元組順序。

h_addr - h_addr_list中的第一位址。

gethostbyname() 成功時返回乙個指向結構體 hostent 的指標,或者 是個空 (null) 指標。(出錯是不設定errno,使用h_errno 設定錯誤資訊。並用herror()輸出錯誤資訊。)

Linux下網路程式設計實驗

1 tcp程式設計 伺服器端tcp server.c include include include include include include include include define portnumber 3333 int main int argc,char argv 伺服器端填充 s...

Linux下網路程式設計(一)

一,計算機與網路的發展 計算機與網路發展的7個階段 1.批處理 20世紀50年代 是指實現將使用者個資料裝入卡帶或者磁帶。並有計算機按照一定的順序讀取,是使用者索要執行的這些程式和資料能夠一併批量得到處理的方式。2.分時系統 20世紀60年代 是指多個終端 包含滑鼠 鍵盤 顯示器等輸入輸出裝置組成,...

linux環境下網路程式設計

參考 socket是網路程序的pid,由執行程序的計算機的ip位址和程序使用的埠組成。非同步狀態下connect不阻塞,直接返回 1,connect返回 1是對的 然後通過select進行判斷是否連線上 同步狀態下connect阻塞,系統莫認時間75秒後,返回成功或失敗 tcp程式設計的流程 伺服器...