我有一个 python 服务器,它监听几个套接字。启动时,我尝试在侦听之前连接到这些套接字,因此我可以确定没有其他东西正在使用该端口。这使我的服务器启动时间增加了大约 3 秒(未经测试大约需要 0.54 秒),我想将其缩短。由于我只测试 localhost,因此我认为大约 50 毫秒的超时时间已经足够了。不幸的是,由于某种原因,socket.setdefaulttimeout(50) 方法似乎不起作用。
我怎样才能减少这个?
检查端口使用情况:
def is_port_in_use(port: int) -> bool:
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
return s.connect_ex(('localhost', port)) == 0
source: https://codereview.stackexchange.com/questions/116450/find-available-ports-on-localhost https://codereview.stackexchange.com/questions/116450/find-available-ports-on-localhost
Note:connect_ex 仍然可以引发异常(如果主机名错误,请参阅 [1] 上的文档)。
[1] https://docs.python.org/3/library/socket.html https://docs.python.org/3/library/socket.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)