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 を呼び出すことによって特定のエラー番号を取得できます。
エラー コード | 意味 |
---|---|
lpAddress パラメーターが指すバッファーが小さすぎます。 より大きなバッファーを渡します。 | |
関数は文字列を sockaddr に変換できませんでした。 詳細については、次の「備考」セクションを参照してください。 | |
WS2_32.DLL が初期化されていません。 アプリケーションは、Windows ソケット関数を呼び出す前に、まず WSAStartup を呼び出す必要があります。 | |
操作を実行するためのメモリが不足していました。 |
解説
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.1と Windows 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 |