ポートについて

ポートについて

ここでは、ゲーム ポートを選択する方法について説明する。インターネット プロトコル (IP) および Internetwork Packet Exchange (IPX) サービス プロバイダにとって、ポートはアドレシングの重要な部分である。各コンピュータに一意の IP アドレスがある場合、ポートは、コンピュータで実行されるアプリケーションを指定する。Microsoft® Windows® では、1 つのポートに許可されるアプリケーションは 1 つだけである。そのため、ユーザーがネットワーク ゲームの実行、電子メールの送信、ファイルのダウンロードを同時に実行している場合、各アプリケーションは異なるポートにバインドされる。受信される各メッセージは、正しいアプリケーションに渡すために、アドレスにポート番号が指定される。

コンピュータがネットワーク アドレス 変換 (NAT) デバイスの対象であり、1 つのパブリック IP アドレスを共有している場合、ポートはアプリケーションを指定するだけでなく、アプリケーションが実行されているコンピュータも指定する。そのため、同じ IP アドレスを共有している 3 台のコンピュータで同じアプリケーションが実行されている場合、各アプリケーションは異なるポートにバインドされ、メッセージは正しいコンピュータとアプリケーションに届く。

また、ポートを指定する場合、DPNSVR を使う必要はない。 これは、ユーザーによる NAT デバイスの管理を簡単にするものである。アプリケーションはデフォルト ポートを選択する必要があるが、既にそのポートが使われている場合、ユーザーがポートをオーバーライドできるようにする必要がある。プレーヤが NAT デバイスの対象である場合のゲーム ポート構成の詳細については、「ネットワーク アドレス変換、ファイアウォール、プロキシ」を参照すること。

  ポートは、シリアル サービス プロバイダまたはモデム サービス プロバイダには使われない。

ポートの設定

IDirectPlay8Address::AddComponent メソッドを呼び出してポートを設定する。次の例では、ポート 12345 を選択している。

IDirectPlay8Address* pAddress;
DWORD dwPort;
...
dwPort = 12345;
hr = pAddress->AddComponent(DPNA_KEY_PORT, &dwPort, sizeof(dwPort),DPNA_DATATYPE_DWORD); 

このポートは DWORD と指定しているが、ポート番号は 65535 (2 バイト) に制限され、ホスト バイト順に使われる。ポートを選択するときは、予約済みのポートを選択してはならない。

予約済みポート

1024 以下のすべてのポートは予約済みである。

また、Microsoft DirectPlay® では、次のポートが予約済みである。

ポート 予約目的
1900 ユニバーサル プラグ アンド プレイ - Simple Service Discovery Protocol
2302-2400 DirectPlay デバイス アドレスのデフォルト
2234 Windows Millennium Edition (Windows Me) および Windows XP 用のインターネット共有およびファイアウォールのサポート
6073 DirectPlay DPNSVR を使った列挙
47624 不適切な DirectPlay の列挙

Internet Assigned Numbers Authority World Wide Web リンク には、使用を避ける必要がある、登録済みの User Datagram Protocol (UDP) ポート一覧が記載されている。