在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中包含一個點分隔的地址輸入字符串。