如何创建一个使用第一个可用的端口在Python的HTTP服务器?
-
22-07-2019 - |
题
我想避免硬编码的端口号,如以下:
httpd = make_server('', 8000, simple_app)
我创建这样的服务器的原因是,我想使用它作为一个“核心”的一个Adobe AIR应用程序,所以它会使用PyAMF的沟通。由于我这运行在客户端是很可能的,我定义的任何端口已在使用。如果有更好的方法来做到这一点,我是问错了问题请让我知道。
解决方案
的问题是,需要一个已知的端口的应用程序使用。但是,如果你给的端口号0,我相信OS会为您提供第一个可用的未使用的端口。
其他提示
的问题是,需要一个已知的端口的应用程序使用。但是,如果你给的端口号0,我相信OS会为您提供第一个可用的未使用的端口。
您是正确的,先生。这里是如何工作的:
>>> import socket
>>> s = socket.socket()
>>> s.bind(("", 0))
>>> s.getsockname()
('0.0.0.0', 54485)
我现在有绑定到端口54485的套接字。
时make_server
你写一个函数?更具体地讲,你怎样对待创建套接字的代码?如果这样做,应该有一种方法,其中,如果未指定端口号(或指定为0作为端口号)和OS将从中选择一个可用的一个。
除此之外,你可以随便挑一个随机端口号,如54315 ......这是不可能有人会使用那一个。
防火墙允许你来允许或拒绝对端口逐端口流量。仅仅出于这个原因,没有一个明确定义的端口的应用程序应该会碰上一个客户端安装的各种问题。
我说选择一个随机端口,使它很容易为用户更改端口如果需要的话。
下面是众所周知的端口。
不隶属于 StackOverflow