同步操作将从 pcd/QPerf 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
___ ____ __ _ _
/ _ \| _ \ ___ _ __ / _| | |__ _ _ _ __ ___ __| |
| | | | |_) / _ \ '__| |_ | '_ \| | | | | '_ \ / __/ _` |
| |_| | __/ __/ | | _| | |_) | |_| | | |_) | (_| (_| |
\__\_\_| \___|_| |_| |_.__/ \__, | | .__/ \___\__,_|
|___/ |_|
如果项目帮助到你,请点个星星。
如果你想加入项目,请私信作者或留言。
如果你发现了项目的BUG,请提交PR
或 Issue
。
项目及文档持续完善中,欢迎加入。交流QQ群:972641491。
QPerf是跨平台网络性能测试软件,采用Qt5框架开发。与其它同类工具不同,QPerf支持使用Udp或Tcp在极限情况下测量网络状况。
网络丢包测试
,想测量网络中两台主机在特定发包速率下的丢包率,用QPerf
;网络极限测试
,想测量网络中两台主机的tcp或udp发包的极限,用QPerf
;试试
,用QPerf
。Usage: qperf [options]
QPerf --- a tool for measure network status .
Options:
-?, -h, --help Displays this help.[显示帮助。]
-v, --version Displays version information.[版本。]
-p, --cport <port> Command link port, <port>.[命令链路使用端口。]
-a, --caddr <address> Command link address, <address>.[命令链路使用地址,客户端必填。]
-P, --dport <port> Data link port.[数据链路使用端口。]
-s, --server Run with server mode,default in client mode.[是否服务端,服务端选项,默认客户端。]
-u, --udp Data link use udp. [数据链路是否使用UDP模式。]
-t, --timout <timeout> Timeout (ms). [数据超时时间,默认1000(ms),服务端设置无效。]
-r, --frequency <freq> Send packet frequency per second. [发送数据频率,服务端设置无效。]
-o, --total <freq> Total packet send. [发送数据总数,服务端设置无效。]
-S, --packSize <packSize> Send perpacket size(in bytes). [发送数据包大小(字节)。]
-w, --warm <warm packet size> Test warm packet, default 10.[测试热身数据包,默认10。]
-f, --fake Run progress in fake .[是否使用测试模式。调试使用。]
QPerf支持在Windows 和Linux 操作系统上编译。
qmake.exe qperf.pro -spec win32-g++ "CONFIG+=release" && mingw32-make.exe qmake_all
mingw32-make.exe -j8
测试支持Qt5.12及以上的编译环境。
./qperf -s -a 127.0.0.1 -p 5555
./qperf -a 127.0.0.1 -p 5555 -P 6666 -r 100 -o 1000 -S 200
网络性能测试工具的状态抽象。此类是应用设计模式-状态模式的一个变体,解决各状态之间的业务耦合,各状态类可组合使用。
封装各个状态的实现类。包括:InitServerState
、 StartServerState
、InitClientState
、InitServerState
、StopState
等的对象实例创建。
封装各个远端节点实现类。包括:FakeServerPointer
、FakeClientPointer
、PFPointer
。
表示对远端节点的业务封装,一个远端节点可能是真实存在的,也可能是虚拟的(FakeClientPointer
、 FakeServerPointer
)
封装类的调用关系。控制状态切换。依赖BasePointer
、BaseState
。使用PointerFactory
、StateFactory
创建需要的实例。
对通信隧道的封装,通信隧道可能是TcpServer
、TcpClient
、Udp
的任一种封装。
封装真实的远端节点的类,内部实现对实际远端测试的命令隧道、数据隧道的业务封装。
m_
开头,紧接着的单词以小写开头,并遵从驼峰式命名法。m_
开头), 设置属性加入前置set
,并接属性大写开头。_
连接。 比如OptionType类型中的CmdPort。命名为Opt_CmdPort。注释主要有区块注释/**/
和行注释//
,应用于类、方法、成员等。
/**
* @brief The CommandParser class
* 解析命令参数。
*/
/**
* @brief cmdIPTuple 获取命令的IP五元组。
* @param dest 输出参数。
* @return 成功返回true。
*/
int m_sampling; //数据采样率
int m_allowErrorCode; //允许数据包容错大小
QTime m_startTime; //启动时间
qint64 m_totalSampleCount; //读取到的总数据大小
if(condition)
{
dosth..
}
while(condition)
{
dosth...
}
或
do{
dosth...
}while(condtion)
所有代码文件采用utf-8 带BOM头格式保存
while
if-else
switch-case
等嵌套层次不能超过3层此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。