接聽 SAN 上的連線
下圖顯示 Windows Sockets 交換器如何設定 SAN 通訊端以認可並排入佇列的概觀,也就是接聽來自遠端對等的連入連線要求。 後續的主題會更詳細地描述接聽程式。
當 Windows Sockets 參數收到應用程式起始的 WSPListen 呼叫時,交換器一律會先呼叫 TCP/IP 提供者的 WSPListen 函式,以設定 TCP/IP 提供者的通訊端以認可和佇列傳入連線要求。 如果應用程式的通訊端系結至 SAN NIC 的 IP 位址或萬用字元 IP 位址,交換器也會使用適當的 SAN 服務提供者來建立並系結額外的通訊端。 如需詳細資訊,請參閱 建立和系結 SAN 通訊端。
接聽連入連線要求
要求 SAN 服務提供者建立和系結 SAN 通訊端之後,交換器會呼叫 SAN 服務提供者的 WSPListen 函式,讓 SAN 通訊端接聽連入連線,並指定 SAN 服務提供者可排入佇列的連入連線要求數目限制。
設定為接受連入連線
參數只接受非封鎖模式中的連入連線。 交換器會呼叫 SAN 服務提供者的 WSPEventSelect 函式,將通訊端置於非封鎖模式中,並要求通知連入線上活動。 在此呼叫中,參數會傳遞FD_ACCEPT程式碼和要與該程式碼相關聯的事件物件。 在 SAN 服務提供者在其通訊端上收到先前為了接聽而建立的連接要求之後,SAN 服務提供者會呼叫 Win32 SetEvent 函式,以向相關聯的事件物件發出訊號。 參數會接聽專用線程中的連入連接事件,並在收到事件物件訊號之後接受或拒絕連接。 如需詳細資訊,請參閱 接受連線要求。
指出對遠端對等的連線要求提示
如果連線要求送達,且 SAN 服務提供者的連線待處理專案已滿,則 SAN 服務提供者應該立即向遠端對等指出它拒絕連線要求。 在此情況下,SAN 服務提供者不會向事件物件發出訊號,以通知交換器接受或拒絕連線要求。 然後,遠端對等端上的 SAN 服務提供者必須失敗其由 WSPConnect 呼叫所起始的連線作業,並出現 WSAECONNREFUSED 錯誤碼。