> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PC 連接埠行為

> PC 連接埠行為

本主題說明 PC 連接埠行為。

## 連接埠規則

* 當使用者使用內建的預設 Windows 防火牆時，PC 連接埠會允許所有輸出的傳輸控制通訊協定 (TCP) 和使用者資料包通訊協定 (UDP) 流量，同時封鎖未經要求的輸入 TCP 和 UDP 封包。

* 慣用本機 UDP 多人遊戲連接埠的行為與其他連接埠相同，但允許未經要求的輸入 UDP 封包。無法使用 TCP。

* 輸出流量一律可運作，您不需要為此宣告任何屬性。當使用者將第一個封包傳送到遠端伺服器/裝置後，無論如何都會傳遞來自該裝置的後續傳入封包。

* 對於 Microsoft Game Development Kit (GDK) 遊戲中的點對點連線，您應該在慣用多人遊戲連接埠上使用 UDP。此外，您必須執行防火牆和 NAT 穿透。除非使用者將遊戲設為例外，否則未經要求的輸入 TCP 封包會遭到封鎖。未經要求的輸入 UDP 封包預設也會遭到封鎖，需要使用者設定例外或某種形式的防火牆穿透，才能解除封鎖 UDP 點對點流量。

* 遊戲的例外可以由使用者透過防火牆設定新增，也可以在您於封裝程序期間宣告特定屬性時新增。使用者的防火牆設定和遊戲套件屬性共同決定實際的未經要求輸入封包行為。

* 請務必注意，PC 使用者可以使用協力廠商防火牆。這些設定會影響連接埠的整體行為。詳細資訊如下。

**提示**：[PlayFab Party](/zh-TW/build/console-features/networking/game-mesh/playfab-party-intro-networking) 提供可自動處理此功能的點對點網路拓撲。或者，請參閱 [STUN](https://tools.ietf.org/html/rfc5389) 和 [ICE](https://tools.ietf.org/html/rfc8445) 的 RFC，作為您自行實作的起點。

## 未經要求的輸入流量管理

使用 GDK 建立的 PC 遊戲會以 MSIXVC 套件的形式發佈。

當遊戲以 MSIXVC 套件的形式發行時，您可以選擇在 **MicrosoftGame.config** 檔案中宣告 [privateNetworkClientServer](https://learn.microsoft.com/uwp/schemas/appxpackage/uapmanifestschema/element-capability) 或 [internetClientServer](https://learn.microsoft.com/uwp/schemas/appxpackage/uapmanifestschema/element-capability) 等屬性，以宣告如何處理未經要求的輸入流量。

**重要：** 由於使用者的防火牆和設定，這些屬性可能沒有實際效果。若要深入了解，請參閱[防火牆及其對流量的影響](#firewall-and-how-it-affects-traffic)。

下表列出屬性如何影響未經要求的輸入流量存取，以及預期的客戶體驗。

| MicrosoftGame.config | 存取 | 預期的客戶體驗 |
| - | - | - |
| 已指定 **privateNetworkClientServer** | 允許未經要求的輸入 LAN 流量 | 遊戲的例外會依照遊戲套件中的指定，在可執行映像安裝期間新增。 |
| 未指定 **privateNetworkClientServer** | 維持預設行為，封鎖所有未經要求的輸入 LAN 流量 | 不會顯示任何通知。未經要求的輸入 UDP/TCP 封包會以無訊息方式捨棄。 |
| 已指定 **internetClientServer** | 允許未經要求的輸入點對點網際網路流量 | 遊戲的例外會依照遊戲套件中的指定，在可執行映像安裝期間新增。 |
| 未指定 **internetClientServer** | 維持預設行為，封鎖所有未經要求的輸入點對點網際網路流量 | 不會顯示任何通知。未經要求的輸入 UDP/TCP 封包會以無訊息方式捨棄。 |

### 如何為 GDK 遊戲編輯 MicrosoftGame.config

* 前往您遊戲的原始程式碼。
* 開啟 **MicrosoftGame.config**。
* 新增下列程式碼片段並儲存檔案。

請注意，建置 MXIXVC 套件時，會在 **SubmissionValidator** 記錄檔中產生警告。

```xml theme={null}
<ExtendedAttributeList>
  <ExtendedAttribute Name="Capability" Value="privateNetworkClientServer"/>
  <ExtendedAttribute Name="Capability" Value="internetClientServer"/>
</ExtendedAttributeList>
```

將屬性新增至遊戲的 **MicrosoftGame.config** 檔案時，這些屬性會套用至產生的 **AppXManifest.xml**。若要深入了解產生程序，請參閱 [MicrosoftGame.config 概觀](/zh-TW/build/core-features/common/game-config/MicrosoftGameConfig-Overview)。

<a id="firewall-and-how-it-affects-traffic" />

## 防火牆及其對流量的影響

使用者的防火牆和設定會影響您遊戲的網路功能。本節說明防火牆如何影響 GDK 遊戲的流量，這將協助您強化網路設計。

為了讓您更了解本主題，也一併納入受防火牆影響的 Win32 遊戲連接埠存取作為參考。

一般而言，您需要做好準備：對於使用協力廠商防火牆的使用者，**privateNetworkClientServer** 和 **internetClientServer** 屬性不會有任何效果。這預計約佔使用者總數的 30-40%。

### GDK 可執行遊戲

**使用預設 Windows 10 防火牆的使用者**

* **privateNetworkClientServer** 和 **internetClientServer** 屬性會如先前所述運作
* 無論是否定義 **privateNetworkClientServer** 和 **internetClientServer** 屬性，以輸出為基礎的流量一律可運作。只要使用者將第一個封包傳送到遠端伺服器/裝置，就會傳遞來自該裝置的後續傳入封包。

**使用協力廠商防火牆的使用者**

* **privateNetworkClientServer** 和 **internetClientServer** 屬性沒有效果。這些使用者會以無訊息方式捨棄未經要求的輸入封包。注意：**無論**您是否在封裝期間於 **MicrosoftGame.config** 中宣告存取功能，皆是如此。
* 所有連接埠 (包括慣用本機 UDP 多人遊戲連接埠) 都受這些防火牆所指定的原則約束。
* 以輸出為基礎的流量通常可運作。是否透過協力廠商防火牆設定適當地將您遊戲的網路存取設為例外，取決於使用者。

### Win32 可執行遊戲

**注意：** 本節是為了比較而新增。GDK 遊戲不是 Win32 遊戲。建議 PC 遊戲使用 GDK 進行開發。

**使用預設 Windows 防火牆的使用者**

* 第一次啟動時，會顯示通知，讓使用者拒絕或允許應用程式對遊戲伺服器的網路存取。
* 不過，以輸出為基礎的流量一律可運作，且不會顯示 UI 通知。

## 另請參閱

* [Windows Sockets 2 (Winsock)](https://learn.microsoft.com/windows/desktop/WinSock/windows-sockets-start-page-2)

* [XBOX 主機連接埠行為 (NDA 主題)](/zh-TW/build/console-features/networking/game-mesh/xbox-console-port-behavior)

* [慣用 UDP 多人遊戲連接埠](/zh-TW/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking)

* [PlayFab Party](/zh-TW/build/console-features/networking/game-mesh/playfab-party-intro-networking)


## Related topics

- [XBOX 主機連接埠行為](/zh-TW/build/console-features/networking/game-mesh/xbox-console-port-behavior.md)
- [GDK 中的 Windows Sockets 簡介](/zh-TW/build/console-features/networking/game-mesh/winsock-intro-networking.md)
- [XBOX 遊戲的遊戲網狀架構網路功能](/zh-TW/build/console-features/networking/game-mesh/index.md)
- [遊戲網狀通訊：GDK 與 XDK 的差異](/zh-TW/build/console-features/networking/xdk-migration/xdk-migration-game-mesh-networking.md)
- [慣用本機 UDP 多人遊戲連接埠網路 API](/zh-TW/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking.md)
