WSAStringToAddressA 関数 (winsock2.h)

WSAStringToAddress 関数は、標準テキスト プレゼンテーション フォームのネットワーク アドレスを sockaddr 構造体の数値バイナリ形式に変換します。これは、このような構造を受け取る Windows Sockets ルーチンへの渡しに適しています。

構文

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 になります。 呼び出し元が特定のプロバイダーによって翻訳を実行する場合は、lpProtocolInfo パラメーターに対応するWSAPROTOCOL_INFO構造体を指定する必要があります。

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.1Windows Server 2012 R2: この関数は、Windows 8.1、Windows Server 2012 R2 以降の Windows ストア アプリでサポートされています。

Note

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

要件

   
サポートされている最小のクライアント Windows 8.1、Windows Vista [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー winsock2.h
Library 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