Python利用线程扫描端口

怎么样能让他按顺序输出呢

import socket
from threading import Thread
 
def get_ip_status(ip,port):
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    ip='192.168.1.1'
    try:
        server.connect((ip,port))
        print('{0} port {1} is open\n'.format(ip, port))
    except Exception as err:
        print('{0} port {1} is not open\n'.format(ip,port))
    finally:
        server.close()

if __name__ == '__main__':
    host = '192.168.1.1'
    for port in range(20,100):
        t=Thread(target=get_ip_status,args=(host,int(port)))
        t.start()

img

单线程就能顺序输出了,如果想顺序输出,那块的那个线程就要等待前面的线程,那多线程就没意义了。如果想做的帅气,可以使用数组存储结果,每10个都获取到数据后一次性输出