連接埠規則
- 遊戲可以繫結的所有 XBOX 主機連接埠 (慣用本機使用者資料包通訊協定 (UDP) 多人遊戲連接埠除外),其行為都與使用預設防火牆的 PC 行為相同。這些連接埠允許所有輸出的傳輸控制通訊協定 (TCP) 和 UDP 流量,同時封鎖未經要求的輸入 UDP 和 TCP 封包。
- 慣用本機 UDP 多人遊戲連接埠的行為與其他連接埠相同,但允許未經要求的輸入 UDP 封包。無法使用 TCP。
- 對於 Microsoft Game Development Kit (GDK) 遊戲中的點對點,您應該在慣用的多人遊戲連接埠上使用 UDP。此外,您必須執行防火牆和 NAT 打洞。
連接埠可用性/保留連接埠
遊戲可以使用任何可繫結的可用連接埠。 如果連接埠已在使用中,bind 函式會傳回E_ADDRINUSE,與在 PC 上的情況相同。
有一些連接埠永遠無法供遊戲使用。保留連接埠清單顯示目前由系統保留的連接埠集合。
Microsoft Game Development Kit (GDK) 遊戲無法事先保留連接埠。在 Microsoft Game Development Kit (GDK) 遊戲嘗試繫結時,任何連接埠都有可能已在使用中。發生這些連接埠衝突時,必須有適當的後援和重試邏輯。
唯一的例外是慣用本機 UDP 多人遊戲連接埠,它是為遊戲保留的,且一律保證可用。
開發連接埠
在開發期間,允許未經要求的輸入 TCP 和 UDP 封包以利工具和偵錯流程可能會很有用。Microsoft Game Development Kit (GDK) 遊戲打算用於此用途的連接埠,應在 MicrosoftGame.config 檔案的DevelopmentOnly 節點下指定。可以指定任意數量的連接埠。在遊戲內使用這些連接埠的方式與其他任何連接埠相同。開發連接埠只在開發套件上具有此特殊行為,在零售版主機上則會還原為預設行為,封鎖未經要求的輸入封包。下列範例顯示如何在 MicrosoftGame.config 中將連接埠 4600 和 4601 標示為開發連接埠。
變更 MicrosoftGame.config 中的
DebugNetworkPortList 之後,除了重新部署遊戲之外,您還必須執行 xbapp applyconfig,變更才會生效。