連線設定和終止
WSAAccept函式可讓應用程式先取得呼叫端資訊,例如呼叫端識別碼和服務品質,再決定是否接受傳入連線要求。 這是使用應用程式提供條件函式的回呼來完成。
WSAConnect函式中的參數所指定的使用者對使用者資料,以及WSAAccept的條件函式可以在連線建立期間傳送至對等,前提是服務提供者支援此功能。
您也可以 (支援此) 的通訊協定,在連線終止時間交換端點之間的使用者資料。 起始終止的結尾可以呼叫 WSASendDisconnect 函式,指出不會再傳送任何資料並起始連線終止順序。 對於某些通訊協定,終止部分是中斷資料與終止啟動器中斷連線的傳遞。 收到通知之後,遠端端通常會由FD_CLOSE指示) 起始終止 (,如果有任何的話,可以呼叫 WSARecvDisconnect 函式來接收中斷連線的資料。
為了說明如何使用中斷連線資料,請考慮下列案例。 用戶端/伺服器應用程式的用戶端半部負責終止通訊端連線。 與終止一致,它會使用中斷連線資料來提供 (,) 伺服器處理的交易總數。 伺服器接著會以所有用戶端處理的累計交易總數來回應。 呼叫和指示的順序可能會如下所示發生:
用戶端 | 伺服器端 |
---|---|
(1) 叫用 WSASendDisconnect 來結束會話並提供交易總計。 | |
(2) Get FD_CLOSE、傳回值為零的回傳,或從WSARecv傳回的WSAEDISCON錯誤,指出正在正常關機。 | |
(3) 叫用 WSARecvDisconnect 以取得用戶端的交易總計。 | |
(4) 計算所有交易的累計總計。 | |
(5) 叫用 WSASendDisconnect 以傳輸總計。 | |
(6) 接收FD_CLOSE指示。 | (5a) Invoke closesocket。 |
(7) 叫用 WSARecvDisconnect 來接收和儲存累計總計的交易。 | |
(8) Invoke closesocket |
請注意,步驟 (5a) 必須遵循步驟 (5) ,但與 (步驟 6) 、 (7) 或 (8) 沒有計時關聯性。