Struktur WSADATA (winsock.h)
Struktur WSADATA berisi informasi tentang implementasi Windows Sockets.
Sintaks
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;
Anggota
wVersion
Ketik: WORD
Versi spesifikasi Windows Sockets yang Ws2_32.dll harapkan digunakan pemanggil. Byte urutan tinggi menentukan nomor versi minor; byte urutan rendah menentukan nomor versi utama.
wHighVersion
Ketik: WORD
Versi tertinggi spesifikasi Windows Sockets yang dapat didukungWs2_32.dll . Byte urutan tinggi menentukan nomor versi minor; byte urutan rendah menentukan nomor versi utama.
Ini adalah nilai yang sama dengan anggota wVersion ketika versi yang diminta dalam parameter wVersionRequested yang diteruskan ke fungsi WSAStartup adalah versi tertinggi dari spesifikasi Windows Sockets yang dapat didukung Ws2_32.dll .
iMaxSockets
Jenis: pendek yang tidak ditandatangani
Jumlah maksimum soket yang mungkin dibuka. Anggota ini harus diabaikan untuk Windows Sockets versi 2 dan yang lebih baru.
Anggota iMaxSockets dipertahankan untuk kompatibilitas dengan spesifikasi Windows Sockets 1.1, tetapi tidak boleh digunakan saat mengembangkan aplikasi baru. Tidak ada nilai tunggal yang sesuai untuk semua penyedia layanan yang mendasar. Arsitektur Windows Sockets berubah dalam versi 2 untuk mendukung beberapa penyedia, dan struktur WSADATA tidak lagi berlaku untuk tumpukan vendor tunggal.
iMaxUdpDg
Jenis: pendek yang tidak ditandatangani
Ukuran pesan datagram maksimum. Anggota ini diabaikan untuk Windows Sockets versi 2 dan yang lebih baru.
Anggota iMaxUdpDg dipertahankan untuk kompatibilitas dengan spesifikasi Windows Sockets 1.1, tetapi tidak boleh digunakan saat mengembangkan aplikasi baru. Arsitektur Windows Sockets berubah dalam versi 2 untuk mendukung beberapa penyedia, dan struktur WSADATA tidak lagi berlaku untuk tumpukan vendor tunggal. Untuk ukuran pesan maksimum aktual khusus untuk penyedia layanan Dan jenis soket Windows Sockets tertentu, aplikasi harus menggunakan getsockopt untuk mengambil nilai opsi SO_MAX_MSG_SIZE setelah soket dibuat.
lpVendorInfo
Jenis: char FAR*
Penunjuk ke informasi khusus vendor. Anggota ini harus diabaikan untuk Windows Sockets versi 2 dan yang lebih baru.
Anggota lpVendorInfo dipertahankan untuk kompatibilitas dengan spesifikasi Windows Sockets 1.1. Arsitektur Windows Sockets berubah dalam versi 2 untuk mendukung beberapa penyedia, dan struktur WSADATA tidak lagi berlaku untuk tumpukan vendor tunggal. Aplikasi yang perlu mengakses informasi konfigurasi khusus vendor harus menggunakan getsockopt untuk mengambil nilai opsi PVD_CONFIG untuk informasi khusus vendor.
szDescription[WSADESCRIPTION_LEN + 1]
Jenis: char[WSADESCRIPTION_LEN+1]
String ASCII yang dihentikan NULL di mana Ws2_32.dll menyalin deskripsi implementasi Windows Sockets. Panjang teks (hingga 256 karakter) dapat berisi karakter apa pun kecuali karakter kontrol dan pemformatan. Penggunaan yang paling mungkin dimiliki aplikasi untuk anggota ini adalah menampilkannya (mungkin terpotong) dalam pesan status.
szSystemStatus[WSASYS_STATUS_LEN + 1]
Jenis: char[WSASYS_STATUS_LEN+1]
String ASCII yang dihentikan NULL di mana Ws2_32.dll menyalin informasi status atau konfigurasi yang relevan. Ws2_32.dll harus menggunakan parameter ini hanya jika informasi tersebut mungkin berguna bagi pengguna atau staf dukungan. Anggota ini tidak boleh dianggap sebagai perpanjangan parameter szDescription .
Keterangan
Fungsi WSAStartup memulai penggunaan DLL Soket Windows oleh proses. Fungsi WSAStartup mengembalikan penunjuk ke
Struktur WSADATA dalam parameter lpWSAData .
Versi spesifikasi Windows Sockets saat ini dikembalikan dalam anggota wHighVersion
Struktur WSADATA adalah versi 2.2 yang dikodekan dengan nomor versi utama dalam byte rendah dan nomor versi minor dalam byte tinggi. Versi Winsock DLL saat ini, Ws2_32.dll, mendukung aplikasi yang meminta salah satu versi spesifikasi Windows Sockets berikut:
- 1.0
- 1.1
- 2.0
- 2.1
- 2.2
Contoh
Contoh berikut menunjukkan penggunaan struktur 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. */
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | winsock.h (termasuk Winsock2.h) |