最初の利用可能なポートを使用してPythonでHTTPサーバーを作成する方法を教えてください。

httpserver python

次のようにポート番号をハードコーディングしないようにします。

httpd = make_server( ''、8000、simple_app)

この方法でサーバーを作成しているのは、PyAMFを使用して通信するように、Adobe AIRアプリケーションの「カーネル」として使用したいからです。 私はこれをクライアント側で実行しているので、私が定義したどのポートもすでに使用中である可能性が非常に高いです。 これを行うより良い方法があり、私が間違った質問をしているならば、私に知らせてください。

  3  0


ベストアンサー

問題は、アプリケーションが使用するための既知のポートが必要なことです。 しかし、あなたが0のポート番号を与えるならば、私はOSがあなたに最初に利用可能な未使用のポートを提供すると思います。

7


_
問題は、アプリケーションが使用するための既知のポートが必要なことです。 しかし、あなたが0のポート番号を与えるならば、私はOSがあなたに最初に利用可能な未使用のポートを提供すると思います。
_

あなたは正しいです、先生。 これがどのように機能するかです:

>>> import socket
>>> s = socket.socket()
>>> s.bind(("", 0))
>>> s.getsockname()
('0.0.0.0', 54485)

私は今、ポート54485にバインドされたソケットを持っています。

6


`make_server`はあなたが書いた関数ですか? 具体的には、ソケットを作成するコードを処理しますか? 指定した場合は、ポート番号を指定しないで(またはポート番号として0を指定して)OSが使用可能なポート番号を選択するようにする必要があります。

それ以外に、あなたは54315のように、ランダムなポート番号を選ぶことができます…​ 誰かがそれを使うことはありそうもないです。

2


ファイアウォールを使用すると、ポートごとにトラフィックを許可または拒否できます。 この理由だけで、明確に定義されたポートを持たないアプリケーションは、クライアントインストールであらゆる種類の問題に遭遇することを予想するべきです。

私はランダムなポートを選ぶと言い、必要ならばユーザーがポートを変更することを非常に簡単にします。

これは よく知られているportsの良い出発点です。

-1


タイトルとURLをコピーしました