1、inet_aton, inet_ntoa, inet_addr
轉換IPv4地址:點分10進制字符串和32位網絡字節序二進制值
n: network
a: ?
INADDR_NONE: 32位都是1的二進制值,點分10進制值爲255.255.255.255,對應的字符串”255.255.255.255\0”爲16個字節,所以INET_ADDRSTRLEN的值定義成16
2、inet_pton, inet_ntop
n: network
p: presentation
family:AF_INET, AF_INET6。所以這兩個函數同時支持IPv4和IPv6。如果傳入一個不支持的地址族,函數將報錯,同時將全局變量errno置爲EAFNOSUPPORT。
爲避免函數調用時超出指針strptr指向字符串的內存大小,必須傳入*strptr的大小
#include <netinet/in.h>
如果len太小,則返回開指針,同時errno被置爲ENOSPC