Fungsi panggilan balik LPWSPLISTEN (ws2spi.h)
Fungsi LPWSPListen membuat soket untuk mendengarkan koneksi masuk.
Sintaks
LPWSPLISTEN Lpwsplisten;
int Lpwsplisten(
[in] SOCKET s,
[in] int backlog,
[out] LPINT lpErrno
)
{...}
Parameter
[in] s
Deskriptor mengidentifikasi soket yang terikat dan tidak terhubung.
[in] backlog
Panjang maksimum di mana antrean koneksi yang tertunda dapat tumbuh. Jika nilai ini adalah SOMAXCONN, maka penyedia layanan harus mengatur backlog ke nilai maksimum "wajar". Tidak ada ketentuan standar untuk mengetahui nilai backlog yang sebenarnya.
[out] lpErrno
Arahkan ke kode kesalahan.
Mengembalikan nilai
Jika tidak ada kesalahan yang terjadi, LPWSPListen mengembalikan nol. Jika tidak, nilai SOCKET_ERROR dikembalikan, dan kode kesalahan tertentu tersedia di lpErrno.
Kode Kesalahan | Makna |
---|---|
Subsistem jaringan gagal. | |
Alamat lokal soket sudah digunakan dan soket tidak ditandai untuk memungkinkan penggunaan kembali alamat dengan SO_REUSEADDR. Kesalahan ini biasanya terjadi pada saat Ikatan, tetapi dapat ditunda sampai fungsi ini jika **mengikat** adalah ke alamat kartubebas sebagian (melibatkan ADDR_ANY) dan jika alamat tertentu perlu diterapkan pada saat fungsi ini. | |
Fungsi dipanggil saat panggilan balik sedang berlangsung. | |
Soket belum terikat dengan LPWSPBind. | |
Soket sudah terhubung. | |
Tidak ada lagi deskriptor soket yang tersedia. | |
Tidak ada ruang buffer yang tersedia. | |
Deskriptor bukan soket. | |
Soket yang dirujuk bukan jenis yang mendukung operasi LPWSPListen . |
Keterangan
Untuk menerima koneksi, soket pertama kali dibuat dengan LPWSPSocket yang terikat ke alamat lokal dengan LPWSPBind, backlog untuk koneksi masuk ditentukan dengan LPWSPListen, dan kemudian koneksi diterima dengan LPWSPAccept. LPWSPListen hanya berlaku untuk soket yang berorientasi pada koneksi (misalnya, SOCK_STREAM). Soket dimasukkan ke dalam mode pasif di mana permintaan koneksi masuk diakui dan mengantrekan penerimaan tertunda oleh klien Windows Sockets SPI.
Fungsi ini biasanya digunakan oleh server yang dapat memiliki lebih dari satu permintaan koneksi pada satu waktu: jika permintaan koneksi tiba dengan antrean penuh, klien akan menerima kesalahan dengan indikasi WSAECONNREFUSED.
LPWSPListen harus terus berfungsi secara rasional ketika tidak ada deskriptor yang tersedia. Ini harus menerima koneksi sampai antrean dikosongkan. Jika deskriptor tersedia, panggilan selanjutnya ke LPWSPListen atau LPWSPAccept akan mengisi ulang antrean ke backlog saat ini atau terbaru, jika memungkinkan, dan melanjutkan mendengarkan koneksi masuk.
Klien Windows Sockets SPI dapat memanggil LPWSPListen lebih dari sekali pada soket yang sama. Ini memiliki efek memperbarui backlog saat ini untuk soket mendengarkan. Jika ada lebih banyak koneksi yang tertunda daripada nilai backlog baru, koneksi yang tertunda berlebih akan diatur ulang dan dihilangkan.
Parameter backlog dibatasi (diam-diam) ke nilai yang wajar seperti yang ditentukan oleh penyedia layanan. Nilai ilegal digantikan oleh nilai hukum terdekat. Tidak ada ketentuan standar untuk mengetahui nilai backlog yang sebenarnya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | ws2spi.h |