- 封鎖: XNetworkingQueryPreferredLocalUdpMultiplayerPort
- 非同步: XNetworkingQueryPreferredLocalUdpMultiplayerPortAsync
- 以通知為基礎: XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged
INADDR_ANY/in6addr_any 位址。
處理通訊端失敗
無法保證傳回的連接埠可用來與特定伺服器或對等裝置建立成功的通訊端連線。應執行一般的遊戲重試和後援邏輯。每當通訊端關閉並重新開啟時,遊戲都應再次查詢最新的慣用本機 UDP 多人遊戲連接埠,因為連接埠可能會隨時間變更。網路初始化
XNetworkingQueryPreferredLocalUdpMultiplayerPort API 的所有三種變體 (封鎖、非同步和以通知為基礎) 都會在遊戲啟動和繼續時封鎖或延遲完成/通知,直到網路初始化為止。您可以依照偵測網路初始化狀態概觀另外等待網路初始化,也可以呼叫這些 API 並等待它們傳回。
暫停與繼續
就像任何其他通訊端一樣,繫結至慣用本機 UDP 多人遊戲連接埠的通訊端應在暫停時關閉,並在繼續時等待網路初始化後重新建立。您應該透過RegisterAppStateChangeNotification 註冊暫停和繼續事件。繼續時,您應假設慣用本機 UDP 多人遊戲連接埠已變更,並接聽慣用本機 UDP 多人遊戲連接埠的變更,或在建立新的通訊端時重新查詢。如需 WinSock 暫停和繼續處理的詳細資訊,請參閱 Winsock 中的暫停與繼續。
慣用本機 UDP 多人遊戲連接埠的變更
遊戲可以使用 XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged API 接聽慣用本機 UDP 多人遊戲連接埠的變更。 系統會盡一切努力確保慣用本機 UDP 多人遊戲連接埠在遊戲執行期間不會變更。不過,在某些無法避免的情況下,由於使用者的外部網路狀況變更,連接埠會變更並使任何現有的通訊端流量失效。當網路連線層級變更時,或在遊戲的暫停/繼續週期中,連接埠特別有可能變更。 當慣用本機 UDP 多人遊戲連接埠變更時,來自未來對等裝置的其他輸入連線可能會在任何先前的慣用連接埠上遭到封鎖。這可能不會在通訊端層造成失敗。不過,遊戲最終可能會停止在繫結至任何先前慣用連接埠的任何通訊端上接收封包。 與現有對等裝置之間傳送的封包可能會繼續運作。慣用本機 UDP 多人遊戲連接埠變更的通知,對任何進行中的遊戲工作階段可能並不致命。 發生變更通知時,遊戲應移轉至繫結在新慣用連接埠上的新通訊端。此移轉應盡早進行,且不中斷任何現有的遊戲玩法。若要偵測連線中斷並重試通訊端連線,遊戲應一律使用最新的慣用連接埠。測試慣用本機 UDP 多人遊戲連接埠的變更
使用下列步驟變更慣用本機 UDP 多人遊戲連接埠。- 在遊戲執行時,開啟 XBOX 指南。前往 設定 應用程式。
- 在 一般 索引標籤上,選取 網路設定。
- 選取 進階設定,然後選取 替代連接埠選取。
- 將連接埠選取設定為 手動。若要選取連接埠,請使用下拉式功能表。
- 連接埠選取會立即生效,並對您的遊戲發出對應的通知。
- 完成測試後,將連接埠選取設定回 自動,讓連接埠行為恢復為預設值。
在設定應用程式中時,您的遊戲處於受限狀態但仍在執行,即使您的遊戲不可見,也會立即收到連接埠變更通知。如果您讓設定應用程式保持開啟超過 10 分鐘而未切換回您的遊戲,您的遊戲就會暫停。
安全性
繫結至慣用本機 UDP 多人遊戲連接埠的通訊端,其行為與任何其他通訊端相同。特別是,該通訊端不會提供任何額外的安全性。遊戲應依照通訊安全性最佳做法的規定,在繫結至慣用本機 UDP 多人遊戲連接埠的通訊端之上,使用自己的安全通訊協定。如需詳細資訊,請參閱通訊安全性概觀 (NDA 主題)。點對點
慣用本機 UDP 多人遊戲連接埠提供可用來建置點對點網狀架構的最佳已知連接埠。它已經以最佳方式設定,允許輸入連線通過使用者的 NAT 層。不過,執行 NAT 周遊是遊戲的責任,包括下列各項。- 偵測 NAT 類型
- 偵測並交換裝置的公用 IP 位址和連接埠
- NAT 穿透和周遊
