getaddrinfo()填充struct addrinfo
其中實際打包地址存儲在struct sockaddr *ai_addr
字段中。 struct sockaddr
具有實際的二進制地址表示的字段char *sa_data
。我想將這個sa_data複製到另一個使用memcpy()
的變量,爲此我需要知道該字段的實際長度。如何獲取getaddrinfo返回的ai_addr-> sa_data的實際大小()
我覺得ai_addrlen是我需要的。但事實上,IPv4返回16,IPv6返回28。我想太多了。那麼,獲得sa_data長度的最正確方法是什麼?可能是length = sa_family == AF_INET ? 4 : 16
或length = ai_addrlen - 12
?
謝謝澄清! – 2014-09-21 12:56:42