WSADATA 構造体 (winsock.h)
WSADATA 構造体には、Windows ソケットの実装に関する情報が含まれています。
構文
typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
#if ...
unsigned short iMaxSockets;
#if ...
unsigned short iMaxUdpDg;
#if ...
char *lpVendorInfo;
#if ...
char szDescription[WSADESCRIPTION_LEN + 1];
#if ...
char szSystemStatus[WSASYS_STATUS_LEN + 1];
#else
char szDescription[WSADESCRIPTION_LEN + 1];
#endif
#else
char szSystemStatus[WSASYS_STATUS_LEN + 1];
#endif
#else
unsigned short iMaxSockets;
#endif
#else
unsigned short iMaxUdpDg;
#endif
#else
char *lpVendorInfo;
#endif
} WSADATA;
メンバー
wVersion
種類: WORD
Ws2_32.dll が呼び出し元で使用することを想定している Windows ソケット仕様のバージョン。 上位バイトはマイナー バージョン番号を指定します。下位バイトはメジャー バージョン番号を指定します。
wHighVersion
種類: WORD
Ws2_32.dll でサポートできる Windows ソケット仕様の最上位バージョン。 上位バイトはマイナー バージョン番号を指定します。下位バイトはメジャー バージョン番号を指定します。
WSAStartup 関数に渡される wVersionRequested パラメーターで要求されたバージョンが、Ws2_32.dll でサポートできる Windows ソケット仕様の最上位バージョンである場合、これは wVersion メンバーと同じ値です。
iMaxSockets
型: unsigned short
開くことができるソケットの最大数。 このメンバーは、Windows ソケット バージョン 2 以降では無視する必要があります。
iMaxSockets メンバーは、Windows Sockets 仕様 1.1 との互換性のために保持されますが、新しいアプリケーションを開発する場合は使用しないでください。 基になるすべてのサービス プロバイダーに適した値は 1 つもありません。 Windows ソケットのアーキテクチャは、複数のプロバイダーをサポートするようにバージョン 2 で変更され、 WSADATA 構造体は 1 つのベンダーのスタックには適用されなくなりました。
iMaxUdpDg
型: unsigned short
データグラム メッセージの最大サイズ。 このメンバーは、Windows ソケット バージョン 2 以降では無視されます。
iMaxUdpDg メンバーは、Windows ソケット仕様 1.1 との互換性のために保持されますが、新しいアプリケーションを開発する場合は使用しないでください。 Windows ソケットのアーキテクチャは、複数のプロバイダーをサポートするようにバージョン 2 で変更され、 WSADATA 構造体は 1 つのベンダーのスタックには適用されなくなりました。 特定の Windows ソケット サービス プロバイダーとソケットの種類に固有の実際の最大メッセージ サイズについては、アプリケーションで getsockopt を 使用して、ソケットの作成後にオプション SO_MAX_MSG_SIZEの値を取得する必要があります。
lpVendorInfo
型: char FAR*
ベンダー固有の情報へのポインター。 このメンバーは、Windows ソケット バージョン 2 以降では無視する必要があります。
lpVendorInfo メンバーは、Windows ソケット仕様 1.1 との互換性のために保持されます。 Windows ソケットのアーキテクチャは、複数のプロバイダーをサポートするようにバージョン 2 で変更され、 WSADATA 構造体は 1 つのベンダーのスタックには適用されなくなりました。 ベンダー固有の構成情報にアクセスする必要があるアプリケーションでは 、getsockopt を 使用して、ベンダー固有の情報のオプション PVD_CONFIGの値を取得する必要があります。
szDescription[WSADESCRIPTION_LEN + 1]
型: char[WSADESCRIPTION_LEN+1]
Ws2_32.dll が Windows ソケット実装の説明をコピーする NULL で終わる ASCII 文字列。 テキスト (最大 256 文字) には、コントロール文字と書式設定文字を除く任意の文字を含めることができます。 アプリケーションがこのメンバーに対して使用する可能性が最も高いのは、ステータス メッセージに表示 (切り捨て) することです。
szSystemStatus[WSASYS_STATUS_LEN + 1]
型: char[WSASYS_STATUS_LEN+1]
Ws2_32.dll が関連する状態または構成情報をコピーする NULL で終わる ASCII 文字列。 Ws2_32.dll は、情報がユーザーまたはサポート スタッフに役立つ可能性がある場合にのみ、このパラメーターを使用する必要があります。 このメンバーは、 szDescription パラメーターの拡張と見なすべきではありません。
注釈
WSAStartup 関数は、プロセスによって Windows ソケット DLL の使用を開始します。
WSAStartup 関数は、 へのポインターを返します。
lpWSAData パラメーターの WSADATA 構造体。
の wHighVersion メンバーで返される Windows ソケット仕様の現在のバージョン
WSADATA 構造体はバージョン 2.2 で、下位バイトのメジャー バージョン番号と上位バイトのマイナー バージョン番号でエンコードされています。 このバージョンの現在の Winsock DLL Ws2_32.dllでは、次のいずれかのバージョンの Windows ソケット仕様を要求するアプリケーションがサポートされています。
- 1.0
- 1.1
- 2.0
- 2.1
- 2.2
例
次の例では、 WSADATA 構造体の使用方法を示します。
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
return;
}
/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 in wVersion since that is the version we */
/* requested. */
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
WSACleanup( );
return;
}
/* The WinSock DLL is acceptable. Proceed. */
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | winsock.h (Winsock2.h を含む) |