python cod的多线程版本

2024-09-29 01:19:40 发布

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

我是python的初学者。我需要写一个多线程版本的代码,这样我就不会定义K1,K2,K3并手动分配它们的ip地址和端口号。实际上,我希望k1、k2和k3中的每一个都被一个单独的线程替换,并且我可以用不同的ip地址和端口号创建尽可能多的“k”。我试了几次,还是没有结果。如果有人能帮我或给我一个线索,我将不胜感激。你知道吗

代码如下:

def main():
    global k1,k2,k3
    k1.register_handler('BSSID', lambda *args, **kwargs: handle_bssid(**kwargs))
    k1.register_handler('SSID', lambda *args,**kwargs: handle_ssid(**kwargs))
    k2.register_handler('BSSID', lambda *args, **kwargs: handle_bssid(**kwargs))
    k2.register_handler('SSID', lambda *args,**kwargs: handle_ssid(**kwargs))
    k3.register_handler('BSSID', lambda *args, **kwargs: handle_bssid(**kwargs))
    k3.register_handler('SSID', lambda *args,**kwargs: handle_ssid(**kwargs))


    try:
        while True:
            k1.listen()
            k2.listen()
            k3.listen()
            handle_merge()
    except KeyboardInterrupt:
        pprint(k1.protocols)
        pprint(k2.protocols)
        pprint(k3.protocols)


if __name__ == '__main__':
    address1 = ('192.168.1.7', 2502)
    k1 = KismetClient(address1)
    address2 = ('192.168.1.16', 2502)
    k2 = KismetClient(address2)
    address3 = ('192.168.1.27', 2502)
    k3 = KismetClient(address3)
    main()

Tags: lambdaregistermainargsk2k1listenkwargs