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 構造体」を参照してください。