getaddrinfoメソッドを使用する場合、IPアドレスとポート番号を指定します。out変数にリンクリストを取得しています。正常に動作します。しかし、私はここで概念的な疑問を持っています。IPアドレスとポートの両方を指定している場合、返される可能性のあるソケットが非常に多いのはどうしてですか?1つだけあるべきではありませんか?
1 に答える
0
getaddrinfoのマニュアルページから:
リンクリストに複数のaddrinfo構造が含まれる理由はいくつかあります。たとえば、ネットワークホストがマルチホームであり、複数のプロトコル(AF_INETとAF_INET6の両方)からアクセスできます。または、同じサービスを複数のソケットタイプ(たとえば、1つのSOCK_STREAMアドレスと別のSOCK_DGRAMアドレス)から利用できます。通常、アプリケーションは、返される順序でアドレスを使用してみてください。getaddrinfo()内で使用されるソート関数は、RFC3484で定義されています。/etc/gai.conf(glibc 2.5以降で使用可能)を編集することにより、特定のシステムの順序を微調整できます。
于 2011-11-22T05:18:35.853 に答える