> ## 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.

# XBOX コンソールのポートの動作

> XBOX コンソールのポートの動作

このトピックでは、XBOX コンソールのポートの動作について説明します。

## ポートのルール

* タイトルがバインドできる XBOX コンソールのすべてのポートは、優先ローカル User Datagram Protocol (UDP) マルチプレイヤー ポートを除き、既定のファイアウォールを使用した PC の動作と一致する同じ動作を示します。これらのポートは、すべての送信 Transmission Control Protocol (TCP) および UDP トラフィックを許可し、要求されていない受信 UDP および TCP パケットをブロックします。

* 優先ローカル UDP マルチプレイヤー ポートは、他のポートと同じように動作しますが、要求されていない受信 UDP パケットを許可します。TCP は使用できません。

* Microsoft Game Development Kit (GDK) タイトルのピアツーピアには、優先マルチプレイヤー ポート上で UDP を使用する必要があります。さらに、ファイアウォールおよび NAT パンチングを実行する必要があります。

**ヒント**: [PlayFab Party](/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 を参照してください。

## ポートの可用性/予約ポート

タイトルは、バインドできる任意の利用可能なポートを使用できます。

ポートが既に使用中の場合、[bind](https://learn.microsoft.com/windows/desktop/api/winsock/nf-winsock-bind) 関数は、PC の場合と同じように `E_ADDRINUSE` を返します。

タイトルには決して利用できないポートが多数あります。[予約ポートの一覧](/build/console-features/networking/reserved-ports-networking) は、システムによって予約されている現在のポートのセットを示します。

Microsoft Game Development Kit (GDK) タイトルが事前にポートを予約する方法はありません。Microsoft Game Development Kit (GDK) タイトルがそのポートにバインドしようとする時点で、常にどのポートも既に使用中である可能性があります。これらのポートの競合が発生した場合には、適切なフォールバックおよび再試行ロジックが必要です。

これに対する唯一の例外は [優先ローカル UDP マルチプレイヤー ポート](/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking) で、これはタイトル用に予約されており、常に利用可能であることが保証されます。

## 開発用ポート

開発中に、ツールやデバッグ フローを容易にするために、要求されていない受信 TCP および UDP パケットを許可することが有用な場合があります。Microsoft Game Development Kit (GDK) タイトルがこの目的のために使用するポートは、*MicrosoftGame.config* ファイルの `DevelopmentOnly` ノードの下に指定する必要があります。ポートは任意の数指定できます。タイトル内でのポートの使用は、他のポートと同じです。開発用ポートは、開発キットでのみこの特別な動作を持ち、製品版のコンソールでは既定の動作 (要求されていない受信パケットのブロック) に戻ります。次の例は、*MicrosoftGame.config* でポート `4600` と `4601` を開発用ポートとしてマークする方法を示しています。

```xml theme={null}

<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">

  ...

  <DevelopmentOnly>
    <DebugNetworkPortList>
      <DebugNetworkPort>4600</DebugNetworkPort>
      <DebugNetworkPort>4601</DebugNetworkPort>
    </DebugNetworkPortList>
  </DevelopmentOnly>
</Game>

```

<Note>*MicrosoftGame.config* の `DebugNetworkPortList` に変更を加えた後、変更を有効にするために、タイトルの再デプロイに加えて [xbapp applyconfig](/tools/tools-console/commandlinetools/xbapp#xbapp_applyconfig) を実行する必要があります。</Note>

## 関連情報

* [XBOX の予約済みポートとファイアウォールの例外](/build/console-features/networking/reserved-ports-networking)

* [PC のポートの動作](/build/console-features/networking/game-mesh/pc-port-behavior)

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

* [優先 UDP マルチプレイヤー ポート](/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking)

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


## Related topics

- [PC のポートの動作](/ja-jp/build/console-features/networking/game-mesh/pc-port-behavior.md)
- [GDK での Windows Sockets の紹介](/ja-jp/build/console-features/networking/game-mesh/winsock-intro-networking.md)
- [ゲーム メッシュ通信: GDK と XDK の相違点](/ja-jp/build/console-features/networking/xdk-migration/xdk-migration-game-mesh-networking.md)
- [Game Saves ツール](/ja-jp/build/core-features/common/game-save/game-saves-tools.md)
- [XDK と GDK のタイトル バージョン間のマルチプレイヤー招待](/ja-jp/services/xbox-services/multiplayer/invites/concepts/live-multiplayer-xdkinvites.md)
