我们正在研究Windows桌面应用程序,我们需要捕获当前的Internet带宽。 我们正在多次下载ZIP文件,但我们的结果与Speed Test不符。 我们正在捕获ACTIVE网卡上收到的字节,但顺序下载并不能提供预期的结果。我们甚至多次尝试并行下载不同的文件,但失败了。C#.Net带宽计算VS Speedtest.net速度
仅当我们并行下载不同的文件并同时使用Speed Test进行测试时,我们才获得成功。
现在,这里是我的几个问题:
- 是否TCP跳之间的带宽,影响了我们的带宽?
- TCP HOPS之间的流量是否会影响我们的带宽?
- 如何使用HTTP/TCP下载和C#.NET有效地消耗整个带宽?
- ISP会限制每个TCP Socket连接的带宽吗?
ISP是否提供带宽到http://www.speedtest.net? (因为它总能表现出预期的可能是可能的结果,但其他网站不能)
for (int downloadCount = 0; downloadCount < iterations; downloadCount++) { try { string downloadUrl = GetUniqueDownloadUrl(); bool isValidUrl = Uri.IsWellFormedUriString(downloadUrl, UriKind.Absolute); if (true != isValidUrl) { return result; } // Download file and register total time to download file. Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); byte[] fileContent = webclient.DownloadData(new Uri(downloadUrl, UriKind.Absolute)); stopwatch.Stop(); double downloadTime = stopwatch.ElapsedMilliseconds/1000; // Milliseconds to Seconds // Convert bytes to Mbits. fileSizeInMbits = fileContent.Length/125000; // bytes to Megabits double speed = fileSizeInMbits/downloadTime; // speed in Mbps // Store speeds for average calculation. speeds.Add(speed); } catch (Exception e) { result.Error = e; break; } } } // Calculate average bandwidth for total successful downloads. double totalAvgSpeed = speeds.Average(); result.FileSizeInMB = fileSizeInMbits/8; result.Speed = Math.Round(totalAvgSpeed, 2, MidpointRounding.AwayFromZero); return result; }
这里是我的几个问题: 1)你的方法和速度测试有什么区别 2)你用来下载文件和计算速度的代码在哪里? –
@PawełŁukasik我已经添加了计算带宽的代码片段。请分享你的想法。 –