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 中提供特定的錯誤碼。
錯誤碼 | 意義 |
---|---|
網路子系統失敗。 | |
套接字的本機位址已在使用中,且套接字未標示為允許使用SO_REUSEADDR重複使用位址。 此錯誤通常會在 Bind 時發生,但如果 ** bind** 是部分通配符位址,則可能會延遲到此函式, (牽涉到ADDR_ANY) ,以及此函式時是否需要認可特定位址。 | |
當回呼正在進行時,就會叫用函式。 | |
套接字尚未與 LPWSPBind 系結。 | |
通訊端已連線。 | |
不再有可用的通訊端描述項。 | |
沒有可用的緩衝區空間。 | |
描述項不是套接字。 | |
參考的套接字不是支援 LPWSPListen 作業的類型。 |
備註
若要接受連線,會先使用系結至具有 LPWSPBind 的本機位址的 LPWSPSocket 建立套接字、使用 LPWSPListen 指定連入連線的待處理專案,然後使用 LPWSPAccept 接受連線。 LPWSPListen 僅適用於連線導向 (的套接字,例如,SOCK_STREAM) 。 套接字會進入被動模式,讓 Windows Sockets SPI 用戶端認可傳入連線要求並排入佇列等候接受。
此函式通常由一次可能有多個連線要求的伺服器使用:如果連線要求到達佇列已滿,用戶端會收到錯誤,並指出 WSAECONNREFUSED。
LPWSPListen 應該在沒有任何可用的描述元時繼續合理運作。 它應該接受連線,直到佇列清空為止。 如果描述項變成可用,稍後呼叫 LPWSPListen 或 LPWSPAccept 將會盡可能將佇列重新填入至目前或最新的待辦專案,然後繼續接聽連入連線。
Windows Sockets SPI 用戶端可以在相同的套接字上多次呼叫 LPWSPListen 。 這會影響更新接聽套接字的目前待辦專案。 如果連線比新的 待辦專案 值還多,則會重設並卸除多餘的擱置連線。
待處理項目參數 (以無訊息方式) 服務提供者所決定的合理值。 不合法的值會由最接近的合法值取代。 沒有標準布建可找出實際的待辦專案值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | ws2spi.h |