Fungsi WSAAsyncSelect (winsock.h)

[Fungsi WSAAsyncSelect tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini dapat diubah atau tidak tersedia dalam versi berikutnya. Daripada menggunakan I/O Gaya-Pilih, gunakan I/O tumpang tindih dan Objek Peristiwa dengan WinSock2.]

Fungsi WSAAsyncSelect meminta pemberitahuan peristiwa jaringan berbasis pesan Windows untuk soket.

Sintaks

int WSAAsyncSelect(
  [in] SOCKET s,
  [in] HWND   hWnd,
  [in] u_int  wMsg,
  [in] long   lEvent
);

Parameter

[in] s

Deskriptor yang mengidentifikasi soket tempat pemberitahuan peristiwa diperlukan.

[in] hWnd

Handel yang mengidentifikasi jendela yang akan menerima pesan ketika peristiwa jaringan terjadi.

[in] wMsg

Pesan yang akan diterima ketika peristiwa jaringan terjadi.

[in] lEvent

Bitmask yang menentukan kombinasi peristiwa jaringan di mana aplikasi tertarik.

Nilai kembali

Jika fungsi WSAAsyncSelect berhasil, nilai yang dikembalikan adalah nol, asalkan deklarasi minat aplikasi dalam set peristiwa jaringan berhasil. Jika tidak, nilai SOCKET_ERROR dikembalikan, dan nomor kesalahan tertentu dapat diambil dengan memanggil WSAGetLastError.

Kode kesalahan Makna
WSANOTINITIALISED
Panggilan WSAStartup yang berhasil harus terjadi sebelum menggunakan fungsi ini.
WSAENETDOWN
Subsistem jaringan gagal.
WSAEINVAL
Salah satu parameter yang ditentukan tidak valid, seperti handel jendela yang tidak merujuk ke jendela yang ada, atau soket yang ditentukan dalam status tidak valid.
WSAEINPROGRESS
Pemblokiran panggilan Windows Sockets 1.1 sedang berlangsung, atau penyedia layanan masih memproses fungsi panggilan balik.
WSAENOTSOCK
Deskriptor bukan soket.
 

Kode kesalahan tambahan dapat diatur saat jendela aplikasi menerima pesan. Kode kesalahan ini diekstrak dari lParam dalam pesan balasan menggunakan makro WSAGETSELECTERROR . Kemungkinan kode kesalahan untuk setiap peristiwa jaringan tercantum dalam tabel berikut.

Peristiwa: FD_CONNECT

Kode kesalahan Makna
WSAEAFNOSUPPORT Alamat dalam keluarga yang ditentukan tidak dapat digunakan dengan soket ini.
WSAECONNREFUSED Upaya untuk menyambungkan ditolak.
WSAENETUNREACH Jaringan tidak dapat dijangkau dari host ini saat ini.
WSAEFAULT Parameter namelen tidak valid.
WSAEINVAL Soket sudah terikat ke alamat.
WSAEISCONN Soket sudah tersambung.
WSAEMFILE Tidak ada lagi deskriptor file yang tersedia.
WSAENOBUFS Tidak ada ruang buffer yang tersedia. Soket tidak dapat dihubungkan.
WSAENOTCONN Soket tidak tersambung.
WSAETIMEDOUT Coba sambungkan kehabisan waktu tanpa membuat koneksi.
 

Peristiwa: FD_CLOSE

Kode kesalahan Makna
WSAENETDOWN Subsistem jaringan gagal.
WSAECONNRESET Koneksi direset di sisi jarak jauh.
WSAECONNABORTED Koneksi dihentikan karena waktu habis atau kegagalan lainnya.
 
Kode kesalahan Makna
WSAENETDOWN Subsistem jaringan gagal.
 

Peristiwa: FD_ROUTING_INTERFACE_CHANGE

Kode kesalahan Makna
WSAENETUNREACH Tujuan yang ditentukan tidak lagi dapat dijangkau.
WSAENETDOWN Subsistem jaringan gagal.

Keterangan

Fungsi WSAAsyncSelect digunakan untuk meminta bahwa WS2_32.DLL harus mengirim pesan ke jendela hWnd ketika mendeteksi peristiwa jaringan apa pun yang ditentukan oleh parameter lEvent . Pesan yang harus dikirim ditentukan oleh parameter wMsg . Soket yang pemberitahuannya diperlukan diidentifikasi oleh parameter s .

Fungsi WSAAsyncSelect secara otomatis mengatur soket ke mode nonblocking, terlepas dari nilai lEvent. Untuk mengatur soket kembali ke mode pemblokiran, pertama-tama perlu untuk menghapus catatan peristiwa yang terkait dengan soket melalui panggilan ke WSAAsyncSelect dengan lEvent diatur ke nol. Anda kemudian dapat memanggil ioctlsocket atau WSAIoctl untuk mengatur soket kembali ke mode pemblokiran. Untuk informasi selengkapnya tentang cara mengatur soket nonblok kembali ke mode pemblokiran, lihat fungsi ioctlsocket dan WSAIoctl .

Parameter lEvent dibangun dengan menggunakan operator OR bitwise dengan nilai apa pun yang tercantum dalam tabel berikut.

Nilai Makna
FD_READ Atur untuk menerima pemberitahuan kesiapan untuk membaca.
FD_WRITE Ingin menerima pemberitahuan kesiapan untuk menulis.
FD_OOB Ingin menerima pemberitahuan kedatangan data OOB.
FD_ACCEPT Ingin menerima pemberitahuan koneksi masuk.
FD_CONNECT Ingin menerima pemberitahuan koneksi yang selesai atau operasi gabungan multi-titik.
FD_CLOSE Ingin menerima pemberitahuan penutupan soket.
FD_QOS Ingin menerima pemberitahuan perubahan Kualitas Layanan (QoS) soket.
FD_GROUP_QOS Ingin menerima pemberitahuan perubahan Kualitas Layanan (QoS) grup soket (dicadangkan untuk digunakan di masa mendatang dengan grup soket). Dicadangkan.
FD_ROUTING_INTERFACE_CHANGE Ingin menerima pemberitahuan perubahan antarmuka perutean untuk tujuan yang ditentukan.
FD_ADDRESS_LIST_CHANGE Ingin menerima pemberitahuan perubahan daftar alamat lokal untuk keluarga protokol soket.
 

Mengeluarkan WSAAsyncSelect untuk soket membatalkan WSAAsyncSelect atau WSAEventSelect sebelumnya untuk soket yang sama. Misalnya, untuk menerima pemberitahuan untuk membaca dan menulis, aplikasi harus memanggil WSAAsyncSelect dengan FD_READ dan FD_WRITE, sebagai berikut:

rc = WSAAsyncSelect(s, hWnd, wMsg, FD_READ|FD_WRITE);

Tidak dimungkinkan untuk menentukan pesan yang berbeda untuk peristiwa yang berbeda. Kode berikut tidak akan berfungsi; panggilan kedua akan membatalkan efek yang pertama, dan hanya peristiwa FD_WRITE yang akan dilaporkan dengan pesan wMsg2:

rc = WSAAsyncSelect(s, hWnd, wMsg1, FD_READ);
rc = WSAAsyncSelect(s, hWnd, wMsg2, FD_WRITE);

Untuk membatalkan semua pemberitahuan yang menunjukkan bahwa Windows Sockets tidak boleh mengirim pesan lebih lanjut yang terkait dengan peristiwa jaringan pada soket, lEvent diatur ke nol.

rc = WSAAsyncSelect(s, hWnd, 0, 0);

Meskipun WSAAsyncSelect segera menonaktifkan posting pesan peristiwa untuk soket dalam instans ini, ada kemungkinan bahwa pesan dapat menunggu dalam antrean pesan aplikasi. Oleh karena itu, aplikasi harus siap menerima pesan peristiwa jaringan bahkan setelah pembatalan. Menutup soket dengan closesocket juga membatalkan pengiriman pesan WSAAsyncSelect , tetapi peringatan yang sama tentang pesan dalam antrean masih berlaku.

Soket yang dibuat oleh fungsi accept memiliki properti yang sama dengan soket mendengarkan yang digunakan untuk menerimanya. Akibatnya, peristiwa WSAAsyncSelect yang ditetapkan untuk soket mendengarkan juga berlaku untuk soket yang diterima. Misalnya, jika soket mendengarkan memiliki peristiwa WSAAsyncSelectFD_ACCEPT, FD_READ, dan FD_WRITE, soket apa pun yang diterima pada soket mendengarkan tersebut juga akan memiliki peristiwa FD_ACCEPT, FD_READ, dan FD_WRITE dengan nilai wMsg yang sama yang digunakan untuk pesan. Jika wMsg atau peristiwa yang berbeda diinginkan, aplikasi harus memanggil WSAAsyncSelect, melewati soket yang diterima dan data baru yang diinginkan.

Ketika salah satu peristiwa jaringan yang dicalonkan terjadi pada soket yang ditentukan, jendela aplikasi hWnd menerima pesan wMsg. Parameter wParam mengidentifikasi soket tempat peristiwa jaringan terjadi. Kata rendah dari lParam menentukan peristiwa jaringan yang telah terjadi. Kata tinggi dari lParam berisi kode kesalahan apa pun. Kode kesalahan adalah kesalahan apa pun seperti yang didefinisikan dalam Winsock2.h.

Catatan Setelah menerima pesan pemberitahuan peristiwa, fungsi WSAGetLastError tidak dapat digunakan untuk memeriksa nilai kesalahan karena nilai kesalahan yang dikembalikan dapat berbeda dari nilai dalam kata tinggi lParam.
 
Kesalahan dan kode peristiwa dapat diekstrak dari lParam menggunakan makro WSAGETSELECTERROR dan WSAGETSELECTEVENT, yang didefinisikan dalam Winsock2.h sebagai:
#include <windows.h>

#define WSAGETSELECTEVENT(lParam)       LOWORD(lParam)
#define WSAGETSELECTERROR(lParam)       HIWORD(lParam)

Penggunaan makro ini akan memaksimalkan portabilitas kode sumber untuk aplikasi.

Kemungkinan kode peristiwa jaringan yang dapat dikembalikan tercantum dalam tabel berikut.

Nilai Makna
FD_READ Soket siap untuk dibaca.
FD_WRITE Soket siap untuk menulis.
FD_OOB Data OOB siap dibaca di soket
FD_ACCEPT Soket siap untuk menerima koneksi masuk baru.
FD_CONNECT Operasi gabungan koneksi atau multipoint dimulai pada soket selesai .
FD_CLOSE Koneksi yang diidentifikasi oleh soket s telah ditutup.
FD_QOS Kualitas Layanan yang terkait dengan soket telah berubah.
FD_GROUP_QOS Dicadangkan. Kualitas Layanan yang terkait dengan grup soket tempat s berada telah berubah (dicadangkan untuk digunakan di masa mendatang dengan grup soket).
FD_ROUTING_INTERFACE_CHANGE Antarmuka lokal yang harus digunakan untuk mengirim ke tujuan yang ditentukan telah berubah.
FD_ADDRESS_LIST_CHANGE Daftar alamat keluarga protokol soket tempat klien aplikasi dapat mengikat telah berubah.
 

Meskipun WSAAsyncSelect dapat dipanggil dengan minat pada beberapa peristiwa, jendela aplikasi akan menerima satu pesan untuk setiap peristiwa jaringan.

Seperti dalam kasus fungsi pilih , WSAAsyncSelect akan sering digunakan untuk menentukan kapan operasi transfer data (kirim atau rekv) dapat dikeluarkan dengan harapan keberhasilan segera. Namun demikian, aplikasi yang kuat harus siap untuk kemungkinan bahwa ia dapat menerima pesan dan mengeluarkan panggilan Windows Sockets 2 yang segera mengembalikan WSAEWOULDBLOCK . Misalnya, urutan peristiwa berikut dimungkinkan:

  1. Data tiba di soket; Windows Sockets 2 memposting pesan WSAAsyncSelect
  2. Aplikasi memproses beberapa pesan lain
  3. Saat memproses, aplikasi mengeluarkan ioctlsocket(s, FIONREAD...) dan memperhatikan bahwa ada data yang siap dibaca
  4. Aplikasi mengeluarkan recv(s,...) untuk membaca data
  5. Perulangan aplikasi untuk memproses pesan berikutnya, akhirnya mencapai pesan WSAAsyncSelect yang menunjukkan bahwa data siap dibaca
  6. Masalah aplikasi recv(s,...), yang gagal dengan kesalahan WSAEWOULDBLOCK.
Urutan lain juga dimungkinkan.

WS2_32.DLL tidak akan terus membanjiri aplikasi dengan pesan untuk peristiwa jaringan tertentu. Setelah berhasil memposting pemberitahuan peristiwa tertentu ke jendela aplikasi, tidak ada pesan lebih lanjut untuk peristiwa jaringan tersebut yang akan diposting ke jendela aplikasi sampai aplikasi melakukan panggilan fungsi yang secara implisit mengaktifkan kembali pemberitahuan tentang peristiwa jaringan tersebut.

Kejadian Mengaktifkan kembali fungsi
FD_READ recv, recvfrom, WSARecv, atau WSARecvFrom.
FD_WRITE kirim, kirim ke, WSASend, atau WSASendTo.
FD_OOB recv, recvfrom, WSARecv, atau WSARecvFrom.
FD_ACCEPT terima atau WSAAccept kecuali kode kesalahan WSATRY_AGAIN menunjukkan bahwa fungsi kondisi dikembalikan CF_DEFER.
FD_CONNECT Tidak ada.
FD_CLOSE Tidak ada.
FD_QOS WSAIoctl dengan perintah SIO_GET_QOS.
FD_GROUP_QOS Dicadangkan. WSAIoctl dengan perintah SIO_GET_GROUP_QOS (disediakan untuk digunakan di masa mendatang dengan grup soket).
FD_ROUTING_INTERFACE_CHANGE WSAIoctl dengan perintah SIO_ROUTING_INTERFACE_CHANGE.
FD_ADDRESS_LIST_CHANGE WSAIoctl dengan perintah SIO_ADDRESS_LIST_CHANGE.
 

Setiap panggilan ke mengaktifkan kembali rutinitas, bahkan panggilan yang gagal, menghasilkan pengaktifan kembali posting pesan untuk peristiwa yang relevan.

Untuk peristiwa FD_READ, FD_OOB, dan FD_ACCEPT , posting pesan dipicu tingkat. Ini berarti bahwa jika rutinitas pengaktifan kembali dipanggil dan kondisi yang relevan masih terpenuhi setelah panggilan, pesan WSAAsyncSelect diposting ke aplikasi. Ini memungkinkan aplikasi untuk digerakkan oleh peristiwa dan tidak peduli dengan jumlah data yang tiba pada satu waktu. Pertimbangkan urutan berikut ini:

  1. Tumpukan transportasi jaringan menerima 100 byte data pada soket dan menyebabkan Windows Sockets 2 memposting pesan FD_READ .
  2. Aplikasi mengeluarkan recv( s, buffptr, 50, 0) untuk membaca 50 byte.
  3. Pesan FD_READ lain diposting karena masih ada data yang akan dibaca.
Dengan semantik ini, aplikasi tidak perlu membaca semua data yang tersedia sebagai respons terhadap pesan FD_READ —satu respon terhadap setiap pesan FD_READ sesuai. Jika aplikasi mengeluarkan beberapa panggilan recv sebagai respons terhadap satu FD_READ, aplikasi dapat menerima beberapa pesan FD_READ . Aplikasi semacam itu dapat memerlukan penonaktifan pesan FD_READ sebelum memulai panggilan recv dengan memanggil WSAAsyncSelect dengan peristiwa FD_READ tidak diatur.

Peristiwa FD_QOS dan FD_GROUP_QOS dianggap terpicu tepi. Pesan akan diposting tepat sekali ketika kualitas perubahan layanan terjadi. Pesan lebih lanjut tidak akan datang sampai penyedia mendeteksi perubahan lebih lanjut dalam kualitas layanan atau aplikasi menegosiasikan ulang kualitas layanan untuk soket.

Pesan FD_ROUTING_INTERFACE_CHANGE diposting ketika antarmuka lokal yang harus digunakan untuk mencapai tujuan yang ditentukan di WSAIoctl dengan perubahan SIO_ROUTING_INTERFACE_CHANGE setelah IOCTL tersebut diterbitkan.

Pesan FD_ADDRESS_LIST_CHANGE diposting ketika daftar alamat tempat aplikasi dapat mengikat perubahan setelah WSAIoctl dengan SIO_ADDRESS_LIST_CHANGE diterbitkan.

Jika ada peristiwa yang terjadi ketika aplikasi memanggil WSAAsyncSelect atau ketika fungsi mengaktifkan kembali dipanggil, maka pesan diposting sebagaimana mewajibkan. Misalnya, pertimbangkan urutan berikut:

  1. Aplikasi memanggil mendengarkan.
  2. Permintaan koneksi diterima, tetapi belum diterima.
  3. Aplikasi memanggil WSAAsyncSelect yang menentukan bahwa aplikasi memerlukan penerimaan pesan FD_ACCEPT untuk soket. Karena kegigihan peristiwa, Windows Sockets 2 segera memposting pesan FD_ACCEPT .

Peristiwa FD_WRITE ditangani sedikit berbeda. Pesan FD_WRITE diposting ketika soket pertama kali terhubung dengan koneksi atau WSAConnect (setelah FD_CONNECT, jika juga terdaftar) atau diterima dengan terima atau WSAAccept, dan kemudian setelah operasi pengiriman gagal dengan WSAEWOULDBLOCK dan ruang buffer tersedia. Oleh karena itu, aplikasi dapat mengasumsikan bahwa pengiriman dimungkinkan mulai dari pesan FD_WRITE pertama dan berlangsung hingga pengiriman mengembalikan WSAEWOULDBLOCK. Setelah kegagalan seperti itu, aplikasi akan diberi tahu bahwa pengiriman kembali dimungkinkan dengan pesan FD_WRITE .

Peristiwa FD_OOB hanya digunakan saat soket dikonfigurasi untuk menerima data OOB secara terpisah. Jika soket dikonfigurasi untuk menerima data OOB sebaris, data OOB (dipercepat) diperlakukan sebagai data normal dan aplikasi harus mendaftarkan minat, dan akan menerima, FD_READ peristiwa, bukan peristiwa FD_OOB . Aplikasi dapat mengatur atau memeriksa cara data OOB ditangani dengan menggunakan setsockopt atau getsockopt untuk opsi SO_OOBINLINE.

Kode kesalahan dalam pesan FD_CLOSE menunjukkan apakah penutupan soket anggun atau abortif. Jika kode kesalahan adalah nol, maka penutupannya anggun; jika kode kesalahan adalah WSAECONNRESET, maka sirkuit virtual soket diatur ulang. Ini hanya berlaku untuk soket berorientasi koneksi seperti SOCK_STREAM.

Pesan FD_CLOSE diposting ketika indikasi dekat diterima untuk sirkuit virtual yang sesuai dengan soket. Dalam istilah TCP, ini berarti bahwa FD_CLOSE diposting ketika koneksi masuk ke status TIME WAIT atau CLOSE WAIT. Ini hasil dari akhir jarak jauh yang melakukan pematian pada sisi kirim atau closesocket. FD_CLOSE hanya boleh diposting setelah semua data dibaca dari soket, tetapi aplikasi harus memeriksa data yang tersisa setelah menerima FD_CLOSE untuk menghindari kemungkinan kehilangan data.

Ketahuilah bahwa aplikasi hanya akan menerima pesan FD_CLOSE untuk menunjukkan penutupan sirkuit virtual, dan hanya ketika semua data yang diterima telah dibaca jika ini dekat dengan baik. Ini tidak akan menerima pesan FD_READ untuk menunjukkan kondisi ini.

Pesan FD_QOS atau FD_GROUP_QOS diposting ketika parameter apa pun dalam spesifikasi alur yang terkait dengan soket atau grup soket miliknya masing-masing telah berubah. Aplikasi harus menggunakan WSAIoctl dengan perintah SIO_GET_QOS atau SIO_GET_GROUP_QOS untuk mendapatkan kualitas layanan saat ini untuk soket atauuntuk grup soket milik masing-masing.

Peristiwa FD_ROUTING_INTERFACE_CHANGE dan FD_ADDRESS_LIST_CHANGE juga dianggap sebagai tepi yang dipicu. Pesan akan diposting tepat sekali ketika perubahan terjadi setelah aplikasi meminta pemberitahuan dengan mengeluarkan WSAIoctl dengan SIO_ROUTING_INTERFACE_CHANGE atau SIO_ADDRESS_LIST_CHANGE yang sesuai. Pesan lebih lanjut tidak akan datang sampai aplikasi menerbitkan kembali IOCTL dan perubahan lain terdeteksi karena IOCTL telah dikeluarkan.

Berikut adalah ringkasan peristiwa dan kondisi untuk setiap pesan pemberitahuan asinkron.

  • FD_READ:
    1. Ketika WSAAsyncSelect dipanggil, jika saat ini ada data yang tersedia untuk diterima.
    2. Ketika data tiba, jika FD_READ belum diposting.
    3. Setelah recv atau recvfrom dipanggil, dengan atau tanpa MSG_PEEK), jika data masih tersedia untuk diterima.
      Catatan Saat setsockopt SO_OOBINLINE diaktifkan, data menyertakan data normal dan data OOB dalam instans yang disebutkan di atas.
       
  • FD_WRITE:
    1. Ketika WSAAsyncSelect dipanggil, jika kirim atau kirim ke dimungkinkan.
    2. Setelah menyambungkan atau menerima panggilan, saat koneksi dibuat.
    3. Setelah kirim atau kirim gagal dengan WSAEWOULDBLOCK, ketika kirim atau kirim ke kemungkinan akan berhasil.
    4. Setelah mengikat pada soket tanpa koneksi. FD_WRITE mungkin atau mungkin tidak terjadi saat ini (tergantung implementasi). Bagaimanapun, soket tanpa koneksi selalu dapat ditulis segera setelah operasi pengikatan .
  • FD_OOB: Hanya valid saat setsockopt SO_OOBINLINE dinonaktifkan (default).
    1. Ketika WSAAsyncSelect dipanggil, jika ada data OOB yang saat ini tersedia untuk diterima dengan bendera MSG_OOB.
    2. Ketika data OOB tiba, jika FD_OOB belum diposting.
    3. Setelah recv atau recvfrom dipanggil dengan atau tanpa bendera MSG_OOB, jika data OOB masih tersedia untuk diterima.
  • FD_ACCEPT:
    1. Ketika WSAAsyncSelect dipanggil, jika saat ini ada permintaan koneksi yang tersedia untuk diterima.
    2. Saat permintaan koneksi tiba, jika FD_ACCEPT belum diposting.
    3. Setelah diterima dipanggil, jika ada permintaan koneksi lain yang tersedia untuk diterima.
  • FD_CONNECT:
    1. Ketika WSAAsyncSelect dipanggil, jika saat ini ada koneksi yang dibuat.
    2. Setelah koneksi dipanggil, ketika koneksi dibuat, bahkan ketika koneksi segera berhasil, seperti biasa dengan soket datagram.
    3. Setelah memanggil WSAJoinLeaf, ketika operasi gabungan selesai.
    4. Setelah menyambungkan, WSAConnect, atau WSAJoinLeaf dipanggil dengan soket yang tidak memblokir dan berorientasi koneksi. Operasi awal dikembalikan dengan kesalahan tertentu dari WSAEWOULDBLOCK, tetapi operasi jaringan melanjutkan. Apakah operasi akhirnya berhasil atau tidak, ketika hasilnya telah ditentukan, FD_CONNECT terjadi. Klien harus memeriksa kode kesalahan untuk menentukan apakah hasilnya berhasil atau gagal.
  • FD_CLOSE: Hanya valid pada soket berorientasi koneksi (misalnya, SOCK_STREAM)
    1. Ketika WSAAsyncSelect dipanggil, jika koneksi soket telah ditutup.
    2. Setelah sistem jarak jauh dimulai dengan baik menutup, ketika saat ini tidak ada data yang tersedia untuk diterima (Ketahuilah bahwa, jika data telah diterima dan menunggu untuk dibaca ketika sistem jarak jauh memulai penutupan dengan baik, FD_CLOSE tidak dikirimkan sampai semua data yang tertunda telah dibaca).
    3. Setelah sistem lokal dimulai dengan penutupan yang baik dan sistem jarak jauh telah merespons dengan pemberitahuan "Akhir Data" (misalnya, TCP FIN), ketika tidak ada data yang saat ini tersedia untuk diterima.
    4. Ketika sistem jarak jauh menghentikan koneksi (misalnya, TCP RST yang dikirim), dan lParam akan berisi nilai kesalahan WSAECONNRESET .
      CatatanFD_CLOSE tidak diposting setelah closesocket dipanggil.
       
  • FD_QOS:
    1. Ketika WSAAsyncSelect dipanggil, jika kualitas layanan yang terkait dengan soket telah diubah.
    2. Setelah WSAIoctl dengan SIO_GET_QOS dipanggil, ketika kualitas layanan diubah.
  • FD_GROUP_QOS: Dicadangkan.
  • FD_ROUTING_INTERFACE_CHANGE:
    • Setelah WSAIoctl dengan SIO_ROUTING_INTERFACE_CHANGE dipanggil, ketika antarmuka lokal yang harus digunakan untuk mencapai tujuan yang ditentukan dalam perubahan IOCTL.
  • FD_ADDRESS_LIST_CHANGE:
    • Setelah WSAIoctl dengan SIO_ADDRESS_LIST_CHANGE dipanggil, ketika daftar alamat lokal tempat aplikasi dapat mengikat perubahan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winsock.h (termasuk Winsock2.h)
Pustaka Ws2_32.lib
DLL Ws2_32.dll

Lihat juga

WSAEventSelect

Fungsi Winsock

Referensi Winsock

pilih