UNIX網路程式設計中的位元組序問題

2022-06-14 13:21:12 字數 528 閱讀 1510

1、inet_pton

inet_pton:將「點分十進位制」 -> 「二進位制整數」

int inet_pton(int af, const char *src, void *dst);

這個函式轉換字串到網路位址,第乙個引數af是位址簇,第二個引數*src是**位址,第三個引數* dst接收轉換後的資料。

af = af_inet

src為指向字元型的位址,即ascii的位址的首位址(ddd.ddd.ddd.ddd格式的),函式將該位址轉換為in_addr的結構體,並複製在*dst中。

af = af_inet6

src為指向ipv6的位址,函式將該位址轉換為in6_addr的結構體,並複製在*dst中。

如果函式出錯將返回乙個負值,並將errno設定為eafnosupport,如果引數af指定的位址族和src格式不對,函式將返回0。

舉例:

網路程式設計中的網路位元組序與主機位元組序

一 主機位元組序 不同的cpu有不同的位元組序型別 這些位元組序是指整數在記憶體中儲存的順序 這個叫做主機序 最常見的有兩種 例子 在記憶體中雙字0x01020304 dword 的儲存方式 記憶體位址 4000 4001 4002 4003 le 04 03 02 01 be 01 02 03 0...

網路程式設計 位元組序

三 位址形式的轉換函式 當儲存多位元組資料時,就涉及到位元組序的概念。高位位元組儲存在低位址為大端對齊,低位位元組儲存在低位址為小端對齊。判斷系統為大端對齊還是小端對齊的方法 include typedef union data intmain int argc,char ar else if ob...

網路程式設計 網路位元組序和位址位元組序轉化

網路位元組序是大端序,而記憶體位元組序是小端序 就像彙編學的內容一致 大端序 高位位元組存放到地位位址 小端序 高位位元組存放在高位位址 因此在位址傳輸時需要將位址進行轉化 short unsigned short htons unsigned short h to n,主機轉化成網路資料 s sh...