使用 Python 快速测试端口是否正在使用的方法

2024-02-28

我有一个 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(使用前将#替换为@)

使用 Python 快速测试端口是否正在使用的方法 的相关文章

随机推荐