概述
网络带宽检测一般使用iperf
下面的两个连接是linux和PC端工具下载,下载3.1.3就可以了,其他版本试了几个,低版本编译不过,高版本需要交叉编译工具带有openssl库
https://iperf.fr/iperf-download.php
https://downloads.es.net/pub/iperf/
修改编译配置:
https://blog.csdn.net/u012153439/article/details/79699414
./configure --host=arm --prefix=$(pwd)/…/out/ --host=arm-hisiv300-linux CFLAGS=-static --enable-static LDFLAGS=-static --disable-shared
执行步骤:
服务端:
解压iperf-3.1.3-win64.zip到PC的纯英文目录
WIN+R 打开命令提示符界面,按照如下步骤执行命令
客户端:
把iperf3放到虚拟机下挂载执行
./iperf3 -c PC端的IP
在linux下的检测依据的是/proc/net/dev中的信息
c源码:
/************************************************************************************************
*****Describe: This program is writen to detect the network bite rate *****
*****Email: lishuangliang@outlook.com *****
*****Author: shuang liang li *****
*****Date: 2018-05-20 *****
*************************************************************************************************/
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <dirent.h>
#include <time.h>
#include <fcntl.h>
#include <errno.h>
#ifdef debugprintf
#define debugpri(mesg, args...) fprintf(stderr, "[NetRate print:%s:%d:] " mesg "n", __FILE__, __LINE__, ##args)
#else
#define debugpri(mesg, args...)
#endif
int GetNetRate(FILE* fd,char *interface,long *recv,long *send)
{
char buf[1024];
char *p;
char flow[32];
int i = 0;
char tempstr[16][16]={0};
memset(buf,0,sizeof(buf));
memset(tempstr,0,sizeof(tempstr));
fseek(fd, 0, SEEK_SET);
int nBytes = fread(buf,1, sizeof(buf)-1,fd);
if (-1 == nBytes)
{
debugpri("fread error");
fclose(fd);
return -1;
}
buf[nBytes] = '