私はネットワークプログラミングを初めて利用しています。以下の構造体の定義は私にとって非常に混乱しています。ここでh_addr_list
は文字列配列として定義されていますが、配列in_addr
の格納に使用されます。 char **h_addr_list
ではなく、struct in_addr **h_addr_list
と定義されていませんでしたか?なぜ構造体hostentのh_addr_listがstruct in_addr **の代わりにchar **ですか?
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) */
};