<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 數(shù)據(jù)傳輸進程子面板

          數(shù)據(jù)傳輸進程子面板

          作者: 時間:2017-01-06 來源:網絡 收藏
          一.概述

          Tcp傳輸文件夾的任務也完成了,想要把程序做的完美一點,于是想起了win8中在copy文件或文件夾時的傳輸進程面板,顯示了要從何位置傳輸多少文件到何位置,已傳輸多少的進度條還有顯示實時速度和平均速度的圖標,于是我借鑒了win8的做法,想要實現(xiàn)這樣一個功能,使得數(shù)據(jù)傳輸過程更加清晰。下圖為win8系統(tǒng)傳輸文件的面板

          本文引用地址:http://www.ex-cimer.com/article/201701/336636.htm


          二.需求分析

          做一個一樣的子面板并不難,然而子面板和主程序的通信與控制將成為重點。類似于上面的面板,子面板需要以下的數(shù)據(jù)信息:被傳輸?shù)奈募ɑ蛭募A)名稱,數(shù)量,絕對路徑,接受的它的IP地址,當前已傳輸?shù)谋壤瑢崟r傳輸速度,平均速度。以上信息都要通過主程序傳輸給子面板,傳輸方式就是我上一篇文章中講到的隊列。

          三.具體程序

          程序的程序設計思路框圖沒什么可說的,就是在tcp的傳輸子循環(huán)中把生成的上面所需要的信息組成一個簇以隊列的方式發(fā)送給子面板,子面板經過相關計算后顯示在子面板的前面板,主程序接收后同時關閉子面板即可,下面分別說以下每一部分的具體程序框圖。

          1.主程序部分

          首先主程序中通過一系列的數(shù)據(jù)組合,還有類似已傳輸量,總運行時間,這些數(shù)據(jù)都需要通過移位寄存器進行累計,最后組成一個簇,然后發(fā)給隊列,這個簇包含以下信息(按順序敘述):已傳輸文件個數(shù),初始時間(開始傳輸?shù)挠嫊r時間),文件路徑,客戶IP地址,文件個數(shù),文件總量(B),已傳輸總量(B),每次傳輸量形成的數(shù)組,實時速度(發(fā)送每一小段的速度)構成的數(shù)組,當前時間(計時器計時的當前時間);


          接下來用隊列發(fā)送數(shù)據(jù)給子Vi,隊列的數(shù)據(jù)格式為簇的格式,同時我們需要設定該循環(huán)停止的條件就是n個文件中的n-1個文件已經傳輸完畢,并且第n個結束傳輸信號為真,這樣就關閉子Vi,然后關閉該循環(huán)。


          2.子面板部分

          經過設計,子面板的主界面如下圖所示


          上圖中進度條和圖標顯示的很明白,其中兩個藍色按鈕本來是模仿win8中的兩個按鈕分別用來暫停傳輸和取消傳輸?shù)?,但是由于程序目前還木有做這一部分,所以這個問題以后再說,兩個按鈕左邊的空白就是顯示從何處傳輸何數(shù)據(jù)給何地址的空白,下面對后面板程序做一簡單說明。

          首先說一下子Vi的整體框圖,它一共包含三部分,如下圖所示,用一個順序結構將三部分分開:初始化,數(shù)據(jù)計算顯示以及程序是否關閉的程序。第一部分就是設定速度圖表的顏色以及按鈕初始化;第三部分主要是根據(jù)文件是否傳輸完畢作為條件結構的輸入來判斷并關閉子Vi前面板和停止運行子Vi,下面主要說一下第二部分,數(shù)據(jù)的計算和處理里面的圖表的描繪。


          其他的數(shù)據(jù)大多是直接傳輸顯示的,還有幾個例如平均速度,文件路徑等是經過了一定的處理后在界面上顯示的,而圖表相對麻煩一點


          圖表的x軸是已經傳輸?shù)陌俜直?,總長為100%,這需要把每一小塊傳輸結束后所傳輸?shù)目偭坑脭?shù)組保存,然后通過一個for循環(huán)讓數(shù)組的每一個值除以總的需要傳輸?shù)牧烤褪莤軸的數(shù)據(jù);而y軸顯示的是x軸所對應的每一小塊傳輸?shù)臅r候的實時速度,然后也將它們累計起來成一個數(shù)組作為xy圖的y輸入數(shù)組即可,這一部分實現(xiàn)以以后程序就基本結束了。


          上一頁 1 2 下一頁

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();