1、windows运行环境,PythonGUI显示的文字全部为英文,
2、GUI上有选择跑TCP/UDP协议按钮;
3、GUI上有跑Iperf3的文本框,默认命令行:iperf3 -c 127.0.0.1 -P 4 -t 5 --forceflush
4、GUI上有开始测试按钮、停止测试按钮
5、GUI上有折线图,横轴为测试时间,纵轴为速率,
6、点击开始按钮,线程1执行iperf3 -c 127.0.0.1 -1 -P 4 -t 5,输出测试时间和速率,传递给到线程2;
7、线程2接收到的时间和速率,显示在折线图上。
import tkinter as tk
from tkinter import ttk
import subprocess
import threading
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import time
from datetime import datetime
import re
import sys
# 全局变量,用于保存测试数据
test_data = {
'time': [],
'rate': []
}
# 全局变量来跟踪进程和运行状态
iperf3_process = None
running = False
# 执行iperf的线程
def start_test():
global iperf3_process, running
#清空全局变量--字典的数据
# 清空上次的测试数据
test_data["time"].clear()
test_data["rate"].clear()
# 启动新线程执行iperf3
thread = threading.Thread(target=run_iperf3)
thread.daemon = True
thread.start()
def stop_

最低0.47元/天 解锁文章
4584

被折叠的 条评论
为什么被折叠?



