如何使用第一个可用端口在Python中创建HTTP服务器?

Abd*_*aly 3 python httpserver

我想避免硬编码端口号,如下所示:

httpd = make_server('', 8000, simple_app)
Run Code Online (Sandbox Code Playgroud)

我以这种方式创建服务器的原因是我想将它用作Adobe AIR应用程序的"内核",因此它将使用PyAMF进行​​通信.由于我在客户端运行它,因此很有可能我定义的任何端口都已被使用.如果有更好的方法来做到这一点,我问错了问题,请告诉我.

Cha*_*tin 7

问题是您需要一个已知的端口供应用程序使用.但是如果你给一个0的端口号,我相信操作系统会为你提供第一个可用的未使用的端口.


Jor*_*nko 6

问题是您需要一个已知的端口供应用程序使用.但是如果你给一个0的端口号,我相信操作系统会为你提供第一个可用的未使用的端口.

你是对的,先生.这是如何工作的:

>>> import socket
>>> s = socket.socket()
>>> s.bind(("", 0))
>>> s.getsockname()
('0.0.0.0', 54485)
Run Code Online (Sandbox Code Playgroud)

我现在有一个绑定到端口54485的套接字.

  • "你说的没错,先生." 发生这种情况时喜欢它. (2认同)