私はIPv4からIPv6へのコードの移行に取り組んでいます。もちろん、IPv4の下位互換性を維持する必要があります。IPv6アドレスはIPv4モードで動作しますか?
私はコードを変換するためのいくつかのドキュメントとガイドを読んでおり、inet_addr()の代わりにinet_pton()などの新しいAPIの多くを使用すると、IPv4とIPv6の両方で動作することが書かれています。
しかし、場合によっては、別の方法で各プロトコルを処理するためのコードを記述する必要があるとはっきりしない場合もあります。具体的には、IPv6アドレス(sockaddr_storage構造を使用するAF_INET6ファミリ)がローカルネットワーク上で動作するかどうかはわかりません。
したがって、たとえば、のは、私は一定のin6addr_loopbackに建てを使用してこのようなアドレスを作成し、私はバインド()の呼び出しにパラメータのためにそれを使用しようとしましょう。
これはIPv4とIPv6の両方で動作しますか、それぞれのケースに対して正しいアドレスタイプ(AF_INETとAF_INET6)を作成する必要がありますか?外部デバイスのソケットではなく、ローカルソケット(この場合はループバック)に接続するかどうかは重要ですか?
重要な場合に備えて、クライアントコードがiPhone/iPadハードウェア上で実行されています。
私は両方のソケットの種類を作成する方法を知っていますが、私の質問は、常にすべてのシナリオでIPv6タイプを作成することです。これは、IPv4専用ネットワークを含むすべてのネットワークタイプで機能しますか?あなたのIPv6ホストは、IPv4接続用のIPv4トンネリングをしない限り – Locksleyu
いいえ、あなたは、両方のプロトコルをサポートする必要があります。 – Pramod
しかし、どのプロトコルを使用するのかはどのようにわかりますか?物事を単純にするために、私はローカルホストサーバーへの接続だけをしているとしましょう。 – Locksleyu