gpt4 book ai didi

python - 使用 python3 查找空闲的 tcp 端口

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:26 26 4
gpt4 key购买 nike

我正在使用 python 在 linux 系统中寻找一个免费的 tcp 端口。我用这个代码

from contextlib import closing

def find_free_port():
with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
s.bind(('', 0))
return s.getsockname()[1]

if __name__ == "__main__":
print(find_free_port())

有时我会收到这个问题

  File "test_script.py", line 10, in <module>
print(find_free_port())
File "test_script.py", line 6, in find_free_port
s.bind(('', 0))
OSError: [Errno 98] Address already in use

为什么?

最佳答案

一种解决方案是终止已在使用的端口并再次使用它。要在 Linux 中终止特定端口,请使用以下命令:

sudo fuser -k Port_Number/tcp

例如:您的情况如下:

sudo fuser -k 98/tcp

但是为了回答你的问题,我认为下面的代码将帮助你找到所有空闲的 tcp 端口:

from contextlib import closing
import socket

for port in range(1, 8081):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
res = sock.connect_ex(('localhost', port))
if res == 0:
print (port)

关于python - 使用 python3 查找空闲的 tcp 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54213309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com