Запуск Iperf Server и клиента с использованием многопоточности в Python вызывает ошибку сегментации

Основной класс вызывает два других класса (IperfServer и IperfClient), и я пытаюсь запустить их, используя многопоточность. Я использую класс оболочки Python для iperf3. Оба класса инициированы, но во время работы 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 и многопоточности. Может ли кто-нибудь помочь мне понять, какую ошибку я совершаю?

1 ответ

Решение

Попробуйте запустить его в подпроцессе (см. Multiprocessing.Process) вместо потока.

Похоже, что iperf_defaults требует запуска в главном потоке.

Другие вопросы по тегам