共用方式為


線上設定和卸除

WSAAccept 函式可讓應用程式取得呼叫端資訊,例如呼叫端標識碼和服務品質,再決定是否接受連入連線要求。 這會使用應用程式提供條件函式的回呼來完成。

WSAConnect 函式中的參數所指定的使用者對用戶數據,以及 WSAAccept 的條件函式,可以在連線建立期間傳輸至對等,前提是服務提供者支援此功能。

您也可以在連線卸除時,在端點之間交換用戶數據(針對支援此的通訊協定)。 起始卸除的結尾可以呼叫 WSASendDisconnect 函式,指出不會再傳送任何數據,並起始連線終止順序。 對於特定通訊協定,部分卸除是中斷數據與卸除啟動器中斷聯機數據的傳遞。 收到通知后,遠端端已起始卸除(通常是由FD_CLOSE指示),WSARecvDisconnect 函式可以呼叫來接收中斷連線的數據,如果有的話。

若要說明如何使用中斷聯機數據,請考慮下列案例。 用戶端/伺服器應用程式的用戶端一半負責終止套接字連線。 與終止相吻合,它會提供其與伺服器一起處理的交易總數(使用中斷聯機數據)。 伺服器接著會回應已與所有用戶端一起處理的交易累計總計。 呼叫和指示的順序可能如下所示:

用戶端 伺服器端
(1) 叫用 WSASendDisconnect 以結束會話和提供交易總計。
(2) 取得傳回值為零的FD_CLOSE、recv,或 WSAEDISCONWSARecv 傳回的錯誤, 表示正常關機。
(3) 叫用 WSARecvDisconnect 以取得用戶端的交易總計。
(4) 計算所有交易累計總計。
(5) 叫用 WSASendDisconnect 以傳輸總計。
(六)收到FD_CLOSE指示。 (5a) 叫用 關閉
(7) 叫用 WSARecvDisconnect 來接收和儲存累計總計的交易。
(8) 叫用 closesocket

 

請注意,步驟(5a)必須遵循步驟(5),但與步驟(6)、(7)或(8)沒有時機關係。