在socket編程時,會出現指定了ip,端口號,卻連不上,這是因為網絡地址跟本地主機地址的字符順序不一樣導致的。
在linux下提供了一些操作函數,如下:
unsigned long int htonl(unsigned long int hostlong);
用來將參數指定的32位hostlong 轉換成網絡字符順序。
unsigned short int htons(unsigned short int hostshort);
用來將參數指定的16位hostshort轉換成網絡字符順序。
unsigned long int inet_addr(const char *cp);
用來將參數cp所指的網絡地址字符串轉換成網絡所使用的二進制數字。
網絡地址字符串是以數字和點組成的字符串,例如:“163.13.132.68”。
int inet_aton(const char * cp,struct in_addr *inp);
用來將參數cp所指的網絡地址字符串轉換成網絡使用的二進制的數字,然后存于參數inp所指的in_addr結構中。
char * inet_ntoa(struct in_addr in);
用來將參數in所指的網絡二進制的數字轉換成網絡地址,然后將指向此網絡地址字符串的指針返回。
unsigned long inet_network(const char *addr);
這個函數需要一個在參數addr中包含一個點分隔的地址輸入字符串。
返回值是主機順序的IP地址的32位值。
The inet_lnaof() function returns the local host address part of
the Internet address in. The local host address is returned in local host byte order.
The inet_netof() function returns the network number part of the Internet Address in.
The network number is returned in local host byte order.
Linux操作系統下的網絡地址轉換函數介紹
更新時間: 2008-05-12 15:05:00來源: 粵嵌教育瀏覽量:856