関数のラッパーを作成していgethostbyname()
ます。これは、構造体へのポインターを返す前に、返された IPv6 構造体をhostent
実行getaddrinfo()
し、最終的に IPv4 構造体にマッピングできるようにする必要があります。ただし、返さin_addr
れた構造を適切にキャストしてアドレスを入力することに問題がh_addr_list
あります-もちろんhostent
、ファミリが equals を識別した場合に備えて。AF_INET
私は基本的に次のことを行っています。
strcpy(&s[0],name);
hp->h_name = strdup(s);
hp->h_addrtype = AF_INET;
hp->h_length = sizeof(struct in_addr);
struct sockaddr *sa= res->ai_addr;
// Segmentation fault:
memcpy(hp->h_addr_list[0], &(((struct sockaddr_in *)sa)->sin_addr.s_addr), hp->h_length);
ヒントはありますか?私は長い間 C コードを書いていないので、ばかげた質問をしていたら申し訳ありません。ありがとう。