一.
Tcp传输文件夹的使命也完成了,想要把程序做的完美一点,所以想起了win8中在copy文件或文件夹时的传输进程面板,显现了要从何方位传输多少文件到何方位,已传输多少的进度条还有显现实时速度和平均速度的图标,所以我学习了win8的做法,想要完成这样一个功用,使得数据传输进程愈加明晰。下图为win8体系传输文件的面板
二.
做一个相同的子面板并不难,可是子面板和主程序的通讯与操控将成为要点。相似于上面的面板,子面板需求以下的数据信息:被传输的文件(或文件夹)称号,数量,绝对途径,承受的它的IP地址,当时已传输的份额,实时传输速度,平均速度。以上信息都要经过主程序传输给子面板,传输方法便是我上一篇文章中讲到的行列。
三.
程序的程序规划思路框图没什么可说的,便是在tcp的传输子循环中把生成的上面所需求的信息组成一个簇以行列的方法发送给子面板,子面板经过相关核算后显现在子面板的前面板,主程序接纳后一起封闭子面板即可,下面分甭说以下每一部分的详细程序框图。
1.
首要主程序中经过一系列的数据组合,还有相似已传输量,总运转时刻,这些数据都需求经过移位寄存器进行累计,最终组成一个簇,然后发给行列,这个簇包括以下信息(按次序叙说):已传输文件个数,初始时刻(开端传输的计时时刻),文件途径,客户IP地址,文件个数,文件总量(B),已传输总量(B),每次传输量构成的数组,实时速度(发送每一小段的速度)构成的数组,当时时刻(计时器计时的当时时刻);
接下来用行列发送数据给子Vi,行列的数据格局为簇的格局,一起咱们需求设定该循环中止的条件便是n个文件中的n-1个文件现已传输完毕,而且第n个完毕传输信号为真,这样就封闭子Vi,然后封闭该循环。
2.
经过规划,子面板的主界面如下图所示
上图中进度条和图标显现的很理解,其间两个蓝色按钮本来是仿照win8中的两个按钮别离用来暂停传输和撤销传输的,可是因为程序现在还木有做这一部分,所以这个问题今后再说,两个按钮左面的空白便是显现从何处传输何数据给何地址的空白,下面临后面板程序做一简略阐明。
其他的数据大多是直接传输显现的,还有几个例如平均速度,文件途径等是经过了必定的处理后在界面上显现的,而图表相对费事一点
图表的x轴是现已传输的百分比,总长为100%,这需求把每一小块传输完毕后所传输的总量用数组保存,然后经过一个for循环让数组的每一个值除以总的需求传输的量便是x轴的数据;而y轴显现的是x轴所对应的每一小块传输的时分的实时速度,然后也将它们累计起来成一个数组作为xy图的y输入数组即可,这一部分完成以今后程序就根本完毕了。