【问题标题】:Downloaded size is more than real下载大小超过真实
【发布时间】:2017-07-14 11:31:39
【问题描述】:

我用 C# 和 Microsoft API 编写了一个程序,显示您的下载量,但它没有告诉我下载的正确大小,例如:如果我下载 10 MB 文件,程序显示 11 MB 已下载。
我还检查了网络状态窗口仍然像我的程序一样告诉我。
为什么? ISP 中的其他软件是否与我的工作方式相同?

objIPInterfaceStatistics2 = objNetworkInterface[numberinterface].GetIPStatistics();
            long newBytesreceived;
            newBytesreceived = objIPInterfaceStatistics2.BytesReceived;
            if (checkdata == true)
            {
                checkdata = false;
                newBytesreceived = 0;
            }
            long newUsage = newBytesreceived - oldBytesreceived2;
            trafficusage += newUsage;
            float converttrafficusage = trafficusage / 1000000;
            oldBytesreceived2 = objIPInterfaceStatistics2.BytesReceived;
            worker.ReportProgress((int)Math.Ceiling(converttrafficusage));
            Thread.Sleep(1000);

【问题讨论】:

  • 我们是否只是想想象一下您编写的代码是做什么的以及如何/如果您有问题?请尝试创建某种minimal reproducible example,如果您需要帮助找出您做错了什么。
  • 你需要考虑网络开销
  • 您确定他们使用的是相同的“度量”吗?他们可能会向您显示 MibiBytes 的大小而不是兆字节
  • 添加源代码

标签: c# networking


【解决方案1】:

我可以假设这两个值的计算方式不同。 通常,1 兆字节指的是 1.000.000 字节,而 1 兆字节指的是 2^20 字节 => 1.048.576 字节。通常使用兆字节,因为它更容易计算。

可以肯定的是,您提供的一些用于计算下载包的示例代码会很好^^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多