计算网络速度

/*
 * =====================================================================================
 *
 *       Filename:  net_speed.c
 *
 *    Description: 
 *
 *        Version:  1.0
 *        Created:  08/16/2010 09:27:03 PM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  YOUR NAME (),
 *        Company: 
 *
 * =====================================================================================
 */

#include <stdio.h>

int main()
{
    FILE  *fp;
    char   buf[1024];
    unsigned int   old = 0, new = 0;

    fp = fopen("/sys/class/net/eth0/statistics/rx_bytes", "rb");
    if (fp == NULL)
        return -1;

    fread(buf, 1, sizeof(buf), fp);
    sscanf(buf, "%u", &old);
    fclose(fp);
    while(1)
    {
        fp = fopen("/sys/class/net/eth0/statistics/rx_bytes", "rb");
        fread(buf, 1, sizeof(buf), fp);
        fclose(fp);
        sscanf(buf, "%u", &new);
        printf("net speed: %-u KB/s/n", (new - old)/1000);
        old = new;
        sleep(1);
    }

    return 0;
}

要靠打开文件来计算,有点慢阿,不知道有没有别的办法呢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算TCP速度,可以使用以下步骤: 1. 在服务器端的tcpServer.h头文件中添加#include <QTime>。这将包含用于计时的QTime类。 2. 在tcpServer.cpp文件中的服务器链接或准备发送的函数中调用time.start()函数来开始计时。这将记录下发送或接收数据的开始时间。 3. 在更新进度条的函数中,或者可以在服务器建立链接的函数中,使用以下语句计算TCP速度: ``` float useTime = time.elapsed(); double speed = bytesReceived / useTime; ``` 其中,time.elapsed()函数返回自上次start()或restart()被调用以来经过的毫秒数。bytesReceived代表已接收的字节数。通过将已接收的字节数除以用时,可以得到速度值。 4. 将计算得到的速度值显示在相应的界面上,例如使用setText()函数将速度值设置为标签的文本。可以使用以下代码示例: ``` ui->tcpClientStatusLabel->setText(tr("已接收 %1MB (%2MB/s) \n共%3MB 已用时:%4秒\n估计剩余时间:%5秒") .arg(bytesReceived / (1024*1024))//已接收 .arg(speed*1000/(1024*1024),0,'f',2)//速度 .arg(totalBytes / (1024 * 1024))//总大小 .arg(useTime/1000,0,'f',0)//用时 .arg(totalBytes/speed/1000 - useTime/1000,0,'f',0));//剩余时间 ``` 其中,ui->tcpClientStatusLabel是用于显示速度信息的标签控件。使用arg()函数将相关信息填入文本中。 综上所述,以上是计算TCP速度的方法。您可以根据需要在代码中进行相应的调整和实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [QT 中网络传输时显示速度的实现](https://blog.csdn.net/wuqinxiang/article/details/7834187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Qt多线程TCP服务器客户端传输文件](https://blog.csdn.net/L_iostream/article/details/128531354)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值