Bagikan melalui


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
Tergantung pada versi yang diminta oleh aplikasi, salah satu nomor versi di atas adalah nilai yang dikodekan sebagai nomor versi utama dalam byte rendah dan nomor versi minor dalam byte tinggi yang dikembalikan dalam anggota wVersion struktur WSADATA .
Catatan Aplikasi harus mengabaikan anggota iMaxsockets, iMaxUdpDg, dan lpVendorInfo di WSADATA jika nilai dalam wVersion setelah panggilan berhasil ke WSAStartup setidaknya 2. Ini karena arsitektur Windows Sockets berubah dalam versi 2 untuk mendukung beberapa penyedia, dan WSADATA tidak lagi berlaku untuk tumpukan vendor tunggal. Dua opsi soket baru diperkenalkan untuk menyediakan informasi khusus penyedia: SO_MAX_MSG_SIZE (menggantikan anggota iMaxUdpDg ) dan PVD_CONFIG (memungkinkan konfigurasi khusus penyedia lainnya terjadi).
 

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)

Lihat juga

Opsi Soket SOL_SOCKET

Opsi Soket dan IOCTL

WSAStartup

getsockopt