ポートについて
ポートについて
ここでは、ゲーム ポートを選択する方法について説明する。インターネット プロトコル (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 には、使用を避ける必要がある、登録済みの User Datagram Protocol (UDP) ポート一覧が記載されている。