LPWSPLISTEN 回呼函式 (ws2spi.h)

LPWSPListen 函式會建立套接字來接聽連入連線。

語法

LPWSPLISTEN Lpwsplisten;

int Lpwsplisten(
  [in]  SOCKET s,
  [in]  int backlog,
  [out] LPINT lpErrno
)
{...}

參數

[in] s

識別系結、未連接套接字的描述項。

[in] backlog

擱置連線佇列可以成長的長度上限。 如果此值是 SOMAXCONN,則服務提供者應將待辦項目設定為最大「合理」值。 沒有標準布建可找出實際的待辦專案值。

[out] lpErrno

錯誤碼的指標。

傳回值

如果沒有發生錯誤, LPWSPListen 會傳回零。 否則,會傳回SOCKET_ERROR值,而且 lpErrno 中提供特定的錯誤碼。

錯誤碼 意義
WSAENETDOWN
網路子系統失敗。
WSAEADDRINUSE
套接字的本機位址已在使用中,且套接字未標示為允許使用SO_REUSEADDR重複使用位址。 此錯誤通常會在 Bind 時發生,但如果 ** bind** 是部分通配符位址,則可能會延遲到此函式, (牽涉到ADDR_ANY) ,以及此函式時是否需要認可特定位址。
WSAEINPROGRESS
當回呼正在進行時,就會叫用函式。
WSAEINVAL
套接字尚未與 LPWSPBind 系結。
WSAEISCONN
通訊端已連線。
WSAEMFILE
不再有可用的通訊端描述項。
WSAENOBUFS
沒有可用的緩衝區空間。
WSAENOTSOCK
描述項不是套接字。
WSAEOPNOTSUPP
參考的套接字不是支援 LPWSPListen 作業的類型。

備註

若要接受連線,會先使用系結至具有 LPWSPBind 的本機位址的 LPWSPSocket 建立套接字、使用 LPWSPListen 指定連入連線的待處理專案,然後使用 LPWSPAccept 接受連線。 LPWSPListen 僅適用於連線導向 (的套接字,例如,SOCK_STREAM) 。 套接字會進入被動模式,讓 Windows Sockets SPI 用戶端認可傳入連線要求並排入佇列等候接受。

此函式通常由一次可能有多個連線要求的伺服器使用:如果連線要求到達佇列已滿,用戶端會收到錯誤,並指出 WSAECONNREFUSED

LPWSPListen 應該在沒有任何可用的描述元時繼續合理運作。 它應該接受連線,直到佇列清空為止。 如果描述項變成可用,稍後呼叫 LPWSPListenLPWSPAccept 將會盡可能將佇列重新填入至目前或最新的待辦專案,然後繼續接聽連入連線。

Windows Sockets SPI 用戶端可以在相同的套接字上多次呼叫 LPWSPListen 。 這會影響更新接聽套接字的目前待辦專案。 如果連線比新的 待辦專案 值還多,則會重設並卸除多餘的擱置連線。

待處理項目參數 (以無訊息方式) 服務提供者所決定的合理值。 不合法的值會由最接近的合法值取代。 沒有標準布建可找出實際的待辦專案值。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 ws2spi.h

另請參閱

LPWSPAccept

LPWSPConnect

LPWSPSocket