1. 程式人生 > >地址轉換函式htonl和inet_pton

地址轉換函式htonl和inet_pton

uint32_t htonl(unin32_t host32bitvalue);
引數是32bit的二進位制數值,在轉換地址時就是32位的主機位元組序ip地址(經常用點分十進位制)
用法:servaddr.sin_addr.s_addr=htonl(127.0.0.1);
servaddr.sin_addr.s_addr=htonl(INADDR_ANY); // INADDR_ANY真實值為0.0.0.0

int inet_pton(int family,const char *strptr,void *addrptr);
該函式完成兩個功能:1.字串->二進位制數值  2.主機位元組序->網路位元組序(所以呼叫此函式後不需htonl了)

第二個引數是ip地址字串的指標

用法:inet_pton(AF_INET,argv[1],&servaddr.sin_addr);
第三個引數使用&servaddr.sin_addr.s_addr也可以通過

總結:數值型的ip地址轉換用htonl,字串型別的用inet_pton