次の方法で共有


WSAStringToAddressA 関数 (winsock2.h)

WSAStringToAddress 関数は、標準テキスト 表示形式のネットワーク アドレスを、このような構造体を受け取る Windows ソケット ルーチンに渡すのに適した、sockaddr 構造体の数値バイナリ形式に変換します。

構文

INT WSAAPI WSAStringToAddressA(
  [in]           LPSTR               AddressString,
  [in]           INT                 AddressFamily,
  [in, optional] LPWSAPROTOCOL_INFOA lpProtocolInfo,
  [out]          LPSOCKADDR          lpAddress,
  [in, out]      LPINT               lpAddressLength
);

パラメーター

[in] AddressString

変換する標準テキスト形式のネットワーク アドレスを含む、0 で終わる文字列へのポインター。

[in] AddressFamily

AddressString パラメーターによって指されるネットワーク アドレスのアドレス ファミリ。

[in, optional] lpProtocolInfo

使用するプロバイダーに関連付けられている WSAPROTOCOL_INFO 構造体。 これが NULL場合、呼び出しは、指定された AddressFamilyをサポートする最初のプロトコルのプロバイダーにルーティングされます。

[out] lpAddress

関数が成功した場合にアドレス文字列の sockaddr 構造体で埋められたバッファーへのポインター。

[in, out] lpAddressLength

lpAddress パラメーターが指すバッファーの長さ (バイト単位) へのポインター。 関数呼び出しが成功した場合、このパラメーターは、lpAddress パラメーターで返される sockaddr 構造体のサイズへのポインターを返します。 指定したバッファーのサイズが十分でない場合、WSAEFAULT 特定のエラーで関数が失敗し、このパラメーターは必要なサイズ (バイト単位) で更新されます。

戻り値

操作が成功した場合 WSAStringToAddress の戻り値は 0 です。 それ以外の場合は、SOCKET_ERROR値が返され、WSAGetLastError呼び出すことによって特定のエラー番号を取得できます。

エラー コード 意味
WSAEFAULT の
lpAddress パラメーターが指すバッファーが小さすぎます。 より大きなバッファーを渡します。
WSAEINVAL の
関数は文字列を sockaddrに変換できませんでした。 詳細については、次の「解説」セクションを参照してください。
WSANOTINITIALIZED の
WS2_32.DLLが初期化されていません。 アプリケーションは、Windows ソケット関数 呼び出す前に、WSAStartup を最初に呼び出す必要があります。
WSA_NOT_ENOUGH_MEMORY
操作を実行するためのメモリが不足していました。

備考

WSAStringToAddress 関数は、標準テキスト形式のネットワーク アドレスを、sockaddr 構造体の数値バイナリ形式に変換します。

アドレスの不足しているコンポーネントは、可能であれば、既定で妥当な値に設定されます。 たとえば、不足しているポート番号は既定で 0 になります。 呼び出し元が特定のプロバイダーによって翻訳を実行する場合は、対応する WSAPROTOCOL_INFO 構造体を lpProtocolInfo パラメーターに指定する必要があります。

wsAStringToAddress 関数は、sockaddr 構造体の形式で lpAddress パラメーターで渡される SOCKADDR_IN 構造体の sin_family メンバーがAF_INETまたはAF_INET6に設定されていない場合に失敗し、WSAEINVAL を返します。

WSAStringToAddress 関数を使用した IPv6 アドレスのサポートが、Service Pack 1 (SP1) 以降の Windows XP で追加されました。 IPv6 アドレスをサポートするには、WSAStringToAddress 関数のローカル コンピューターにも IPv6 をインストールする必要があります。

Windows Phone 8: この機能は、Windows Phone 8 以降の Windows Phone ストア アプリでサポートされています。

Windows 8.1 および windows Server 2012 R2: この関数は、Windows 8.1、Windows Server 2012 R2 以降の Windows ストア アプリでサポートされています。

手記

winsock2.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WSAStringToAddress を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 8.1、Windows Vista [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリ |UWP アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winsock2.h
ライブラリ Ws2_32.lib
DLL Ws2_32.dll

関連項目

InetNtop を する

InetPton

RtlIpv4AddressToString を する

RtlIpv4AddressToStringEx の

RtlIpv4StringToAddress の

RtlIpv4StringToAddressEx の

RtlIpv6AddressToString を する

RtlIpv6AddressToStringEx を する

RtlIpv6StringToAddress の

RtlIpv6StringToAddressEx の

WSAAddressToString の

WSAPROTOCOL_INFO

WSAStartup の

inet_addr

inet_ntoa

sockaddr を する