82

いわばルールがないので、これは少し主観的です。サーバーを作成するたびに、「使用するのに最適なポートは何ですか?」と思います。答えは「ユーザーが変更できる限り、どれでも」と思います。では、他の誰もがデフォルトのポートを選択する方法をどのように決定するのでしょうか?個人的には、8000のようなものを使用するのが好きです。HTTP関連の場合は、これがかなり一般的な傾向であることに気づきました。しかし、8000がすでに使用されている場合はどうなりますか?8001を使用しますか?少しアドホックなようですが、そうだと思います。

明らかに、私がこの質問をした最初の人ではありません。IANAはポート番号リストを維持しています...これにより、割り当てられていない範囲(48620-49150)に移動します。私たちは本当にこれらを使うべきだと思いますが、なぜもっと多くのプログラマーがそうしないのですか?どちらを使用するかをどのように決定しますか。全員が#1から始めた場合、私たちは全員48620を使用します。

4

8 に答える 8

42

可能な限り質問に答えたと思います。あなたが言ったことを超えて、ここで従うことができる厳密な規則は実際にはありません. しかし、一般的に:

  • IANA リストを見て、使用されていないポートを選択します。
  • 覚えやすいポート番号を選択してください。
  • コード内のポート番号を修正しないでください。他の製品があなたと同じポートを選択している可能性があり、サーバー上でいつ共存する必要があるかはわかりません。そのため、必要に応じて再コンパイルせずに変更できるように、構成ファイルのどこかにポート番号を入れてください。ポート番号を変更できる機能は、ファイアウォールを再構成せずにファイアウォールを通過するのにも役立ちます。(構成ファイルが存在しない場合は、いつでも選択した値をデフォルトにすることができます。)
  • 一時的なポートに使用される範囲と競合する可能性があるため、高すぎるものを選択したくないという議論があります。これでヒットする可能性はそれほど高くありませんが、発生した場合のデバッグは難しい問題です。

(そして、覚えやすいポート番号を選ぶためのヒントが必要な場合は、同僚の内線番号に基づいてポート番号を覚えている人と一緒に仕事をしたことがあります。)

于 2010-02-04T14:23:57.987 に答える
12

テスト中...常にポート #666 ;)

于 2010-02-04T14:16:37.330 に答える
2

どうですか:

defaultPort = (new Random()).Next(48620, 49150);
于 2010-02-05T15:38:49.000 に答える
1

あなたはあなた自身の質問に答えましたか?割り当てられていないポートを選択し、ユーザーが変更できるようにします。

于 2010-02-04T14:13:58.947 に答える
0

他のオペレーティング システム プロセスにヒットしてエフェメラル ポートを割り当てる可能性があるため、5 桁のような大きな数字のポートは使用しないことをお勧めします。その制限により、「既に使用中のエラー」が発生し始めます。

于 2016-07-15T09:19:19.807 に答える
0

それが明確であることを確認するためにGoogleで簡単に検索した後、私は通常、いくつかの個人的な重要性を選択します.

于 2010-02-04T14:13:03.907 に答える