运行 Iperf 服务器和客户端在 Python 中使用多线程导致分段错误

Running Iperf Server and Client using Multithreading in Python causes Segmentation fault

一个主 class 调用另外两个 classes(IperfServer 和 IperfClient),我正在尝试 运行 它们使用多线程。我正在为 iperf3 使用 python 包装器 class。 classes 都已启动,但在 运行ing Iperf 时,出现分段错误。

代码片段:

class IperfServer(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        print("1")
        server = iperf3.Server()
        print("2")
        server.port = 5201
        response = server.run()

class IperfClient(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        print("3")
        connection = http.client.HTTPSConnection("abc.efg")
        print("4")
        connection.request(method="GET", url="/hij/")
        response = connectn.getresponse()
        connectn.close()

        print("5")
        client = iperf3.Client()
        client.run()

class IperfAgent(object):
    thread1 = IperfClient()
    thread2 = IperfServer()

    thread1.start()
    thread2.start()

输出:

3

1

分段错误

我是 python 和多线程的新手。有人可以帮我找出我犯的错误吗?

尝试 运行在子进程(参见 multiprocessing.Process)而不是线程中启用它。

看来 iperf_defaults 需要在主线程上 运行。