使用Python套接字但包含超时值

2024-06-09 13:12:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试测试一系列端口,并设置一个超时,在这个超时中,如果该值被命中并且连接尚未建立,它将移动到下一个端口。如果连接是在达到超时值之前建立的,我想打印这个值。关键是,我试图用一行代码作为python脚本。。。你知道吗

这是可行的,只需测试端口:

python -c "import socket; print(socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect_ex('192.168.3.78', 6061))"

但是,这不提供任何超时值,因此在我的脚本中,如果无法建立连接,它将挂起。你知道吗

我试图做一些类似的事情:

python -c "import socket; print(socket.socket(socket.AF_INET, socket.SOCK_STREAM).create_connection(('192.168.3.78', 6061), timeout=2))"

但我无法让它接受超时值或打印出建立连接所用的时间。我在看医生的插座,但似乎找不到我可以改变的地方。你知道吗


Tags: 端口代码import脚本streamconnectsocket关键
1条回答
网友
1楼 · 发布于 2024-06-09 13:12:13

socket.create_connection()为您创建SOCK\u流(tcp)套接字对象,这样您就不会调用socket.socket(...)。因此

python -c "import socket; print(socket.create_connection(('192.168.3.78', 6061), timeout=2))"

你应该做你想做的。你知道吗

相关问题 更多 >