ポートのルール
- タイトルがバインドできる XBOX コンソールのすべてのポートは、優先ローカル User Datagram Protocol (UDP) マルチプレイヤー ポートを除き、既定のファイアウォールを使用した PC の動作と一致する同じ動作を示します。これらのポートは、すべての送信 Transmission Control Protocol (TCP) および UDP トラフィックを許可し、要求されていない受信 UDP および TCP パケットをブロックします。
- 優先ローカル UDP マルチプレイヤー ポートは、他のポートと同じように動作しますが、要求されていない受信 UDP パケットを許可します。TCP は使用できません。
- Microsoft Game Development Kit (GDK) タイトルのピアツーピアには、優先マルチプレイヤー ポート上で UDP を使用する必要があります。さらに、ファイアウォールおよび NAT パンチングを実行する必要があります。
ポートの可用性/予約ポート
タイトルは、バインドできる任意の利用可能なポートを使用できます。 ポートが既に使用中の場合、bind 関数は、PC の場合と同じようにE_ADDRINUSE を返します。
タイトルには決して利用できないポートが多数あります。予約ポートの一覧 は、システムによって予約されている現在のポートのセットを示します。
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 を実行する必要があります。