WSADATA 結構 (winsock.h)
WSADATA 結構包含 Windows Sockets 實作的相關信息。
語法
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 Sockets 規格版本。 高序位元組會指定次要版本號碼;低序位元組會指定主要版本號碼。
wHighVersion
類型: WORD
Ws2_32.dll 可支援的 Windows 套接字規格最高版本。 高序位元組會指定次要版本號碼;低序位元組會指定主要版本號碼。
當傳遞至 WSAStartup 函式之 wVersionRequested 參數中要求的版本是 Ws2_32.dll 可支援的 Windows Sockets 規格最高版本時,這個值會與 wVersion 成員相同。
iMaxSockets
類型: 不帶正負號的簡短
可能開啟的套接字數目上限。 Windows Sockets 第 2 版和更新版本應忽略此成員。
iMaxSockets 成員會保留以與 Windows Sockets 規格 1.1 相容,但在開發新應用程式時不應使用。 所有基礎服務提供者都不適用任何單一值。 Windows 套接字在第 2 版中的架構已變更為支援多個提供者,且 WSADATA 結構不再適用於單一廠商的堆疊。
iMaxUdpDg
類型: 不帶正負號的簡短
數據報訊息大小上限。 Windows Sockets 第 2 版和更新版本會忽略此成員。
iMaxUdpDg 成員會保留以與 Windows Sockets 規格 1.1 相容,但在開發新應用程式時不應使用。 Windows 套接字在第 2 版中的架構已變更為支援多個提供者,且 WSADATA 結構不再適用於單一廠商的堆疊。 針對特定 Windows 套接字服務提供者和套接字類型特定的實際訊息大小上限,應用程式應該使用 getsockopt 來擷取建立套接字之後SO_MAX_MSG_SIZE選項的值。
lpVendorInfo
類型: char FAR*
廠商特定資訊的指標。 Windows Sockets 第 2 版和更新版本應忽略此成員。
lpVendorInfo 成員會保留,以便與 Windows Sockets 規格 1.1 兼容。 Windows 套接字在第 2 版中的架構已變更為支援多個提供者,且 WSADATA 結構不再適用於單一廠商的堆疊。 需要存取廠商特定設定資訊的應用程式應該使用 getsockopt 來擷取廠商特定資訊之選項PVD_CONFIG的值。
szDescription[WSADESCRIPTION_LEN + 1]
類型: char[WSADESCRIPTION_LEN+1]
NULL 終止的 ASCII 字串,Ws2_32.dll 複製 Windows Sockets 實作的描述。 文字長度最多 (256 個字元,) 可以包含控件和格式化字元以外的任何字元。 此成員可能擁有的應用程式最可能用來顯示它, (狀態消息中可能截斷) 。
szSystemStatus[WSASYS_STATUS_LEN + 1]
類型: char[WSASYS_STATUS_LEN+1]
NULL 終止的 ASCII 字串,Ws2_32.dll 複製相關的狀態或組態資訊。 只有當資訊對使用者或支持人員而言可能很有用時, Ws2_32.dll 才應該使用此參數。 此成員不應視為 szDescription 參數的延伸。
備註
WSAStartup 函式會由進程起始 Windows Sockets DLL 的使用。
WSAStartup 函式會傳回 的指標
lpWSAData 參數中的 WSADATA 結構。
wHighVersion 成員中傳回的目前 Windows Sockets 規格版本
WSADATA 結構是以低位元組的主要版本號碼和高位元組中的次要版本號碼編碼的 2.2 版。 這個版本的目前 Winsock DLL Ws2_32.dll支援要求下列任何 Windows Sockets 規格版本的應用程式:
- 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 [僅限桌面應用程式] |
標頭 | winsock.h (包含 Winsock2.h) |