簡體   English   中英

mininet中的線程ping

[英]Threading ping in mininet

我想同時啟動兩個或多個主機,以便在 mininet 中使用 python ping 其他兩個主機,我這樣做了,但不起作用

def simpleTest(h1,h2): 

    print (h1.cmd('ping -c5 %s' h2.IP()))

和主要:

if __name__ == '__main__':
    net = Mininet(...)
    threads= 3 # three threads
    #....codes...... 
    for i in range(1, threads):
        hostsrc=net.hosts[i]
        hostdest=net.hosts[i+4]
        thread = threading.Thread(target=simpleTest(hostsrc,hostdest))
        jobs.append(thread)

    for j in jobs:
        j.start()
    for j in jobs:
        j.join()
    """
    codes ...
    """

任何解決方案請...

它通過在這一行中添加 args 來工作......

        thread = threading.Thread(target=simpleTest, args=(hostsrc,hostdest,))

問題在於,當您將simpleTest函數作為參數傳遞時,您正在調用它。 你應該像這樣編寫代碼:

thread = threading.Thread(target = simpleTest, args = (hostsrc, hostdest,))

或者使用 lambda:

thread = threading.Thread(target = lambda:simpleTest(hostsrc, hostdest))

您編寫的代碼將值 None 傳遞給target參數,因為simpleTest函數沒有返回值,因此在調用start方法時什么也沒發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM