0
Я использую gevent для опроса нескольких сокетов, чтобы увидеть, открыт ли один из указанных портов. Как сделать gevent прекратить опрос, если один из сокетов преуспеет?Позвольте gevent прекратить опрос, когда один сокет успешно завершен
import gevent
from gevent import socket
vm_ip = "10.3.12.2"
ports = [22, 16120, 16122]
def fn(port):
while True:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(5)
result = s.connect_ex((vm_ip, port))
s.close()
if result == 0:
return
jobs = [gevent.spawn(fn, port) for port in ports]
gevent.joinall(jobs, timeout=30)