私もこの混乱を経験し、いくつかの調査を行いました。
Linuxプログラミングインターフェイスから引用
int getaddrinfo(const char * host , const char * service ,
const struct addrinfo * hints , struct addrinfo ** result );
結果の引数は、、、、および
host
で指定された基準に対応するホストとサービスの複数の組み合わせが存在する可能性があるため、単一の構造ではなく、構造のリストを返します。たとえば、複数のネットワークインターフェイスを備えたホストに対して複数のアドレス構造を返すことができます。service
hints
自分のドメインでテストしましたcopyqwer.com
DNS設定:
Type Name Value TTL
A @ 23.106.150.74 600 seconds
A @ 111.222.17.173 600 seconds
そしてgetaddrinfo
、これら2つの異なるIPアドレスを持つaddr構造を返します。
完全な例。https://onlinegdb.com/ry1cdoAKr
UDP
コンピューターに出力する(ローカルコンピューターに出力がない理由はわかりませんが、それは問題ではありません)
/home/*****/CLionProjects/APUE/cmake-build-debug/APUE copyqwer.com http
flags canon family inet type stream protocol TCP
host copyqwer.com address 111.222.17.173 port 80
flags canon family inet type stream protocol TCP
host - address 23.106.150.74 port 80