C# - 使用网络带宽计算下载/上传时间

标签 c# networking

作为我正在开发的应用程序中的一项功能,我需要显示将文件上传到服务器/从服务器下载文件的预计总剩余时间。

如何从客户端计算机获取到服务器的下载/上传速度。

我认为如果我能够获得速度,那么我可以通过 --> 来计算时间

for example ---for a 200 Mb file = 200(1024 kb) = 204800 kb and divide it by 204800 Mb / speed Kb/s = "x" seconds

最佳答案

上传/下载速度不是服务器的静态属性,它取决于您的特定连接,也可能随时间变化。我见过的大多数应用程序都会在很短的时间窗口内进行估算。这意味着他们开始下载/上传并测量超过 10 秒的数据量。然后将其作为当前传输速度并用于计算剩余时间(例如 2500kB/10s -> 250Kb/s)。时间窗口不断移动并重新计算,以保持计算准确到当前速度。

虽然这是一种非常基本的方法,但在大多数情况下都能很好地发挥作用。

关于C# - 使用网络带宽计算下载/上传时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1587333/

相关文章:

c# - 共享字典值

c# - 如何将 Expression<Func<BaseClass, bool>> 转换为 Expression<Func<InheritedClass, bool>>?

c# - ASP.NET MVC(三)绑定(bind)POST值到 'object'类型使对象成为System.String[],为什么?

ios - Alamofire 网络获取的完成处理程序

java - 聊天程序: Client to Server Connectivity Issue

networking - 如何在运行的vagrant box上转发端口

c# - 中间件中的路由 Controller 和 Action

c# - POCO 对象中的非空约束

java - 如何在java中获取wifi网络接口(interface)名称

java - 为服务器套接字响应创建监听器?