次の方法で共有


CSocketAddr クラス

このクラスは、ホスト名をホスト アドレスに変換するメソッドを提供し、IPv4 と IPV6 の両方の形式をサポートします。

構文

class CSocketAddr

メンバー

パブリック コンストラクター

名前 説明
CSocketAddr::CSocketAddr コンストラクター。

パブリック メソッド

名前 説明
CSocketAddr::FindAddr 指定したホスト名をホスト アドレスに変換するには、このメソッドを呼び出します。
CSocketAddr::FindINET4Addr IPv4 ホスト名をホスト アドレスに変換するには、このメソッドを呼び出します。
CSocketAddr::FindINET6Addr IPv6 ホスト名をホスト アドレスに変換するには、このメソッドを呼び出します。
CSocketAddr::GetAddrInfo addrinfo リスト内の特定の要素へのポインターを返すには、このメソッドを呼び出します。
CSocketAddr::GetAddrInfoList addrinfo リストへのポインターを返すには、このメソッドを呼び出します。

解説

このクラスは、ライブラリ内の Windows ソケット API 関数およびソケット ラッパーで使用するネットワーク アドレスを検索するために IP バージョンに依存しないアプローチを提供します。

ネットワーク アドアレスの検索に使用されるこのクラスのメンバーは、Win32 API 関数 getaddrinfo を使用します。 コードのコンパイル先が ANSI と UNICODE のどちらであるかに応じて、この関数の ANSI または UNICODE バージョンが呼び出されます。

このクラスは、IPv4 と IPv6 の両方のネットワーク アドレスをサポートします。

要件

ヘッダー: atlsocket.h

CSocketAddr::CSocketAddr

コンストラクター。

CSocketAddr();

解説

新しい CSocketAddr オブジェクトを作成し、ホストに関する応答情報を含むリンク リストを初期化します。

CSocketAddr::FindAddr

指定したホスト名をホスト アドレスに変換するには、このメソッドを呼び出します。

int FindAddr(
    const TCHAR *szHost,
    const TCHAR *szPortOrServiceName,
    int flags,
    int addr_family,
    int sock_type,
    int ai_proto);

int FindAddr(
    const TCHAR *szHost,
    int nPortNo,
    int flags,
    int addr_family,
    int sock_type,
    int ai_proto);

パラメーター

szHost
ホスト名またはドット区切りの IP アドレス。

szPortOrServiceName
ホスト上のサービスのポート番号または名前。

nPortNo
ポート番号。

flags
0 または AI_PASSIVE、AI_CANONNAME、AI_NUMERICHOST の組み合わせ。

addr_family
アドレス ファミリ (PF_INET など)。

sock_type
ソケットの種類 (SOCK_STREAM など)。

ai_proto
プロトコル (IPPROTO_IP や IPPROTO_IPV6 など)。

戻り値

アドレスが正常に計算された場合、ゼロを返します。 エラーの場合、ゼロ以外の Windows ソケット エラー コードを返します。 成功した場合、計算されたアドレスは、CSocketAddr::GetAddrInfoList および CSocketAddr::GetAddrInfo を使用して参照できるリンク リストに格納されます。

解説

ホスト名パラメーターは、IPv4 または IPv6 形式のいずれかになります。 このメソッドは、Win32 API 関数 getaddrinfo を呼び出して変換を実行します。

CSocketAddr::FindINET4Addr

IPv4 ホスト名をホスト アドレスに変換するには、このメソッドを呼び出します。

int FindINET4Addr(
    const TCHAR *szHost,
    int nPortNo,
    int flags = 0,
    int sock_type = SOCK_STREAM);

パラメーター

szHost
ホスト名またはドット区切りの IP アドレス。

nPortNo
ポート番号。

flags
0 または AI_PASSIVE、AI_CANONNAME、AI_NUMERICHOST の組み合わせ。

sock_type
ソケットの種類 (SOCK_STREAM など)。

戻り値

アドレスが正常に計算された場合、ゼロを返します。 エラーの場合、ゼロ以外の Windows ソケット エラー コードを返します。 成功した場合、計算されたアドレスは、CSocketAddr::GetAddrInfoList および CSocketAddr::GetAddrInfo を使用して参照できるリンク リストに格納されます。

解説

このメソッドは、Win32 API 関数 getaddrinfo を呼び出して変換を実行します。

CSocketAddr::FindINET6Addr

IPv6 ホスト名をホスト アドレスに変換するには、このメソッドを呼び出します。

int FindINET6Addr(
    const TCHAR *szHost,
    int nPortNo,
    int flags = 0,
    int sock_type = SOCK_STREAM);

パラメーター

szHost
ホスト名またはドット区切りの IP アドレス。

nPortNo
ポート番号。

flags
0 または AI_PASSIVE、AI_CANONNAME、AI_NUMERICHOST の組み合わせ。

sock_type
ソケットの種類 (SOCK_STREAM など)。

戻り値

アドレスが正常に計算された場合、ゼロを返します。 エラーの場合、ゼロ以外の Windows ソケット エラー コードを返します。 成功した場合、計算されたアドレスは、CSocketAddr::GetAddrInfoList および CSocketAddr::GetAddrInfo を使用して参照できるリンク リストに格納されます。

解説

このメソッドは、Win32 API 関数 getaddrinfo を呼び出して変換を実行します。

CSocketAddr::GetAddrInfo

addrinfo リスト内の特定の要素へのポインターを返すには、このメソッドを呼び出します。

addrinfo* const GetAddrInfo(int nIndex = 0) const;

パラメーター

nIndex
addrinfo リストの特定の要素への参照。

戻り値

ホストの応答情報を含むリンク リスト内の、nIndex によって参照される addrinfo 構造体へのポインターを返します。

CSocketAddr::GetAddrInfoList

addrinfo リストへのポインターを返すには、このメソッドを呼び出します。

addrinfo* const GetAddrInfoList() const;

戻り値

ホストの応答情報を含む 1 つ以上の addrinfo 構造体のリンク リストへのポインター。 詳細については、「addrinfo 構造体」を参照してください。

関連項目

クラスの概要