多路連接和 PGM
必須特別考慮多路 PGM 傳送者或接收者。 此頁面說明考慮,並提供最佳程式設計作法的指導方針。
多路 PGM 寄件者
當應用程式在呼叫 connect 函式時無法指定介面時,會使用第一個可用的介面。 如果沒有介面可用, 連線 就會失敗。
當應用程式使用 RM_SET_SEND_IF 通訊端選項指定介面時,會使用 TCP/IP 隱含地將該介面進行 系 結嘗試,如果 TCP/IP 失敗系結要求,則會失敗。 如果介面是使用 RM_SET_SEND_IF多次設定,則只會成功設定最後一個介面集。
Windows Sockets 會維護已設定的介面,如果該介面消失,會話就會中斷連線。
多路 PGM 接收者
當應用程式在呼叫 接聽 函式時無法指定介面時,會使用預設介面。 如果沒有介面可用, 系結 會失敗。
當應用程式指定要接聽的一或多個介面時,使用 RM_ADD_RECEIVE_IF,Windows Sockets 會嘗試使用 TCP/IP 系結至要求的介面或介面。 來自 TCP/IP 的任何錯誤都會導致此要求失敗。 不同于 PGM 傳送者案例,新增接收介面多次會導致接聽張貼在所有成功新增的介面上。 使用 [RM_DEL_RECEIVE_IF通訊端] 選項停止接聽介面。
Windows 通訊端不會維護多個指定接聽介面的相關狀態,而是依賴 TCP/IP 來執行此動作。 不過,一旦會話進行中,Windows Sockets 會追蹤該會話的傳入介面,如果該介面消失,Windows Sockets 就會中斷會話的連線。