Tôi mới tham gia lập trình mạng. Các định nghĩa cấu trúc sau đây khá khó hiểu với tôi. Ở đây h_addr_list
là một mảng được định nghĩa là chuỗi, nhưng nó được sử dụng để lưu trữ mảng của các cấu trúc in_addr
. Tại sao nó không xác định là struct in_addr **h_addr_list
thay vì char **h_addr_list
?Tại sao h_addr_list trong struct hostent một char ** thay vì struct in_addr **?
struct hostent
{
char *h_name; /* Official domain name of host */
char **h_aliases; /* Null-terminated array of domain names */
int h_addrtype; /* Host address type (AF_INET) */
int h_length; /* Length of an address, in bytes */
char **h_addr_list; /* Null-terminated array of in_addr structs */
};
struct in_addr
{
unsigned int s_addr; /* Network byte order (big-endian) */
};