LPWSPSHUTDOWN 回呼函式 (ws2spi.h)

LPWSPShutdown 函式會停用套接字上的傳送和/或接收。

語法

LPWSPSHUTDOWN Lpwspshutdown;

int Lpwspshutdown(
  [in]  SOCKET s,
  [in]  int how,
  [out] LPINT lpErrno
)
{...}

參數

[in] s

識別套接字的描述項。

[in] how

描述不再允許何種作業類型的旗標。

[out] lpErrno

錯誤碼的指標。

傳回值

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

錯誤碼 意義
WSAENETDOWN
網路子系統失敗。
WSAEINVAL
無效的方式,或與套接字類型不一致。 例如,SD_SEND與UNI_RECV套接字類型搭配使用。
WSAEINPROGRESS
當回呼正在進行時,就會叫用函式。
WSAENOTCONN
套接字未 (連線導向套接字) 。
WSAENOTSOCK
描述項不是套接字。

備註

LPWSPShutdown 函式用於所有類型的套接字,以停用接收、傳輸或兩者。

如果如何SD_RECEIVE,則不允許套接字上的後續接收。 這不會影響較低的通訊協定層。 針對 TCP 套接字,如果套接字上仍有數據排入佇列等候接收,或數據後續抵達,則會重設連線,因為數據無法傳遞給使用者。 針對UDP套接字,會接受並排入佇列傳入的數據報。 在任何情況下都不會產生ICMP錯誤封包。

如果 如何 SD_SEND,則不允許套接字上的後續傳送。 針對 TCP 套接字,將會傳送 FIN。 設定 如何 SD_BOTH停用傳送和接收,如上所述。

請注意, LPWSPShutdown 不會關閉套接字,而且在 叫用 LPWSPCloseSocket 之前,不會釋放附加至套接字的資源。

注意

不論套接字上的SO_LINGER設定為何, LPWSPShutdown 函式都不會封鎖。 Windows Sockets SPI 用戶端不應依賴在關閉套接字之後重複使用套接字。 特別是,Windows Sockets 服務提供者不需要支援在這類套接字上使用 LPWSPConnect

規格需求

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

另請參閱

LPWSPConnect

LPWSPSocket