WinCE 测试网速

来源:互联网 发布:时时彩网站源码购买 编辑:程序博客网 时间:2024/04/28 03:11

  在进行企业级WinCE开发过程中,可能会遇到需要上传附件或者照片到某一指定服务器上的需求。这就需要在现场有有线网络或者无线网络覆盖,实际情况下企业多会选择无线网络。

        现在作者遇到的情况是:在无线网络覆盖的情况下,在某一特定区域,由于某些设备的干扰(具体什么设备查不出来委屈)导致上传速度变慢,可能只有几K每秒,如果需要上传什么几百K或者几M的东东,那用户岂不等死了!于是就想了一个折中办法,先把用户需要上传的附件保存在一个中转文件夹下,上传时需要先判断无线网速,如果此区域网速超过能正常上传的最低网速时,则后台上传附件。为此,需要测试无线上传下载网速。

        测试上传下载网速其实就是上传下载一个文件,计算其用时,将文件大小除以用时就是上传或者下载的网速了。

        代码如下:

//连接ftp            FTPClient d = new FTPClient(FtpInfo.ip, FtpInfo.ml, FtpInfo.yhm, FtpInfo.mm, FtpInfo.dk);            //默认情况下,Stopwatch 实例的运行时间值相当于所有测量的时间间隔的总和。            //每次调用 Start 时开始累计运行时间计数;            //每次调用 Stop 时结束当前时间间隔测量,并冻结累计运行时间值。            //使用 Reset 方法可以清除现有 Stopwatch 实例中的累计运行时间。            System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();            //测试上传            stopwatch.Start();            d.upload(Path.TestPath, ".txt");            stopwatch.Stop();            //获取文件大小,此处上传下载用的文件大小相同(测试文件208B)            var filesize = d.GetFileSize("Test.txt");            this.labWAN.Text = "上传速度: " + (filesize * 1024 / stopwatch.ElapsedMilliseconds).ToString() + "K/S";            //若没有 Reset,则会把任务 1 的用时累计进入任务 2            stopwatch.Reset();             //测试下载            stopwatch.Start();            d.GetFile("Test1.txt", Path.TestPath, "Test1.txt");            stopwatch.Stop();            this.lblDown.Text = "下载速度: " + (filesize * 1024 / stopwatch.ElapsedMilliseconds).ToString() + "K/S";



效果图:


效果图: