多重歸屬與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 會中斷會話的連線。