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
WSAENETDOWN
Subsistem jaringan gagal.
WSAEADDRINUSE
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.
WSAEINPROGRESS
Fungsi dipanggil saat panggilan balik sedang berlangsung.
WSAEINVAL
Soket belum terikat dengan LPWSPBind.
WSAEISCONN
Soket sudah terhubung.
WSAEMFILE
Tidak ada lagi deskriptor soket yang tersedia.
WSAENOBUFS
Tidak ada ruang buffer yang tersedia.
WSAENOTSOCK
Deskriptor bukan soket.
WSAEOPNOTSUPP
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

Lihat juga

LPWSPAccept

LPWSPConnect

LPWSPSocket