运行 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 需要在主线程上 运行。
一个主 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 需要在主线程上 运行。