h表示原始數(shù)據(jù)長度,BlockSize表示塊大小,所述塊大小自定義,LastBlockSize表示最后一個所述分塊數(shù)據(jù)的大小,則由公式⑴能得到所述分塊數(shù)據(jù)的總數(shù),由公式⑵能得到最后一個所述分塊數(shù)據(jù)的大?。?br>[0042]例如,傳輸一份10.5M的WORD文件,若自定義塊大小為1MB,則經(jīng)過分塊處理得到的分塊數(shù)據(jù)總數(shù)為:TotalBlock = (int) (_File.Length/
[0043](long)BlockSize)+l = (10.5/1)+1 = 10+1 = 11,最后一個分塊數(shù)據(jù)的大小為:10.5-(11-1)*1 = 0.5o
[0044]如圖2所示,所述步驟60中,若出現(xiàn)異常情況(包括斷電等意外)導致傳輸中斷,則執(zhí)行斷點續(xù)傳,所述斷點續(xù)傳包括如下步驟:
[0045]步驟61、所述第二網(wǎng)絡(luò)終端發(fā)送重傳指令至第一網(wǎng)絡(luò)終端,并從所述第一網(wǎng)絡(luò)終端獲取所述分塊數(shù)據(jù)總數(shù)和最后一個所述分塊數(shù)據(jù)的大小(由所述分塊數(shù)據(jù)總數(shù)和最后一個所述分塊數(shù)據(jù)大小可計算得到所述原始數(shù)據(jù)傳輸?shù)剿龅诙W(wǎng)絡(luò)終端所需的傳輸總次數(shù));
[0046]步驟62、所述第二網(wǎng)絡(luò)終端校驗本地緩存文件中已存的所述分塊數(shù)據(jù),并從本地緩存文件中循環(huán)讀入已存的所述分塊數(shù)據(jù);
[0047]步驟63、所述第二網(wǎng)絡(luò)終端對讀取到的已存的所述分塊數(shù)據(jù)分別進行計算獲取各自對應的哈希值,并與從所述第一網(wǎng)絡(luò)終端獲取的各所述分塊數(shù)據(jù)的哈希值進行比較是否相同:若是,則找出其中所述分塊數(shù)據(jù)對應的區(qū)塊序號最大的所述分塊數(shù)據(jù),從而獲取與尚未傳輸?shù)乃龇謮K數(shù)據(jù)對應的區(qū)塊序號列表;若否,則記入損壞的所述分塊數(shù)據(jù)對應的區(qū)塊序號列表中;
[0048]步驟64、所述第二網(wǎng)絡(luò)終端根據(jù)所述損壞的所述分塊數(shù)據(jù)對應的區(qū)塊序號列表或所述尚未傳輸?shù)乃龇謮K數(shù)據(jù)對應的區(qū)塊序號列表,向所述第一網(wǎng)絡(luò)終端循環(huán)發(fā)送獲取對應的所述分塊數(shù)據(jù)的指令,并開始異步接收所述第一網(wǎng)絡(luò)終端發(fā)送的對應的所述分塊數(shù)據(jù);
[0049]步驟65、所述第二網(wǎng)絡(luò)終端對接收的所述分塊數(shù)據(jù)進行無限循環(huán)判斷直到接收到正確的所述分塊數(shù)據(jù);
[0050]步驟66、所述第二網(wǎng)絡(luò)終端將接收到的所述分塊數(shù)據(jù)寫入本地緩存文件并進行無限循環(huán)判斷直到所述分塊數(shù)據(jù)成功寫入本地緩存文件(防止發(fā)生磁盤寫入錯誤等情況發(fā)生,保證數(shù)據(jù)的準確性);
[0051]步驟67、判斷第二網(wǎng)絡(luò)終端是否接收到全部所述分塊數(shù)據(jù):若是,則結(jié)束傳輸;若否,則循環(huán)執(zhí)行步驟62到步驟66。
[0052]本發(fā)明,通過將大量的數(shù)據(jù)轉(zhuǎn)化為二維碼圖片進行傳輸,提高了數(shù)據(jù)傳輸?shù)目煽啃约皽蚀_性,解決了內(nèi)網(wǎng)與外網(wǎng)隔離造成的數(shù)據(jù)同步困難問題,保證了物理隔離傳輸?shù)陌踩?,并提高了傳輸效率?br>[0053]雖然以上描述了本發(fā)明的【具體實施方式】,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應當涵蓋在本發(fā)明的權(quán)利要求所保護的范圍內(nèi)。
【主權(quán)項】
1.一種基于二維碼的物理隔離傳輸方法,其特征在于:包括用于發(fā)送原始數(shù)據(jù)的第一網(wǎng)絡(luò)終端和接收原始數(shù)據(jù)的第二網(wǎng)絡(luò)終端,執(zhí)行如下步驟: 步驟10、所述第一網(wǎng)絡(luò)終端對需要發(fā)送的原始數(shù)據(jù)進行自動分塊處理,得到分塊數(shù)據(jù);各所述分塊數(shù)據(jù)都對應一區(qū)塊序號; 步驟20、所述第一網(wǎng)絡(luò)終端對各所述分塊數(shù)據(jù)進行加密并分別轉(zhuǎn)換為對應的二維碼圖片; 步驟30、在所述第一網(wǎng)絡(luò)終端上根據(jù)所述區(qū)塊序號按順序顯示各二維碼圖片得到組合二維碼圖片;所述組合二維碼圖片由復數(shù)張所述二維碼圖片排列組成; 步驟40、所述第二網(wǎng)絡(luò)終端通過二維碼掃描設(shè)備或高速照相機對所述第一網(wǎng)絡(luò)終端上顯示的所述組合二維碼圖片進行掃描; 步驟50、所述第二網(wǎng)絡(luò)終端將采集到的所述組合二維碼圖片進行解密,并拆分為對應的各所述二維碼圖片; 步驟60、所述第二網(wǎng)絡(luò)終端將拆分得到的各所述二維碼圖片進行解析,獲得對應的各所述分塊數(shù)據(jù)并寫入本地緩存文件; 步驟70、所述第二網(wǎng)絡(luò)終端將接收的全部所述分塊數(shù)據(jù)進行合并,得到完整合并后的所述原始數(shù)據(jù)進行存儲。2.根據(jù)權(quán)利要求1所述的一種基于二維碼的物理隔離傳輸方法,其特征在于:所述步驟10進一步具體為,所述第一網(wǎng)絡(luò)終端根據(jù)所述原始數(shù)據(jù)的數(shù)據(jù)量與所述二維碼圖片存儲容量劃分所述原始數(shù)據(jù),得到所述分塊數(shù)據(jù),且所述分塊數(shù)據(jù)的總數(shù)與最后一個所述分塊數(shù)據(jù)的大小分別滿足以下公式: TotalBlock = (int)(_File.Length/(long)BlockSize)+1(I)LastBlockSize = (int)(_File.Length-((long)TotalBlock-1)*(long)BlockSize)(2) 在公式(I)和公式(2)中TotalBlock表示所述分塊數(shù)據(jù)的總數(shù),_File.Length表示原始數(shù)據(jù)長度,BlockSize表示塊大小,所述塊大小自定義,LastBlockSize表示最后一個所述分塊數(shù)據(jù)的大小,則由公式(I)能得到所述分塊數(shù)據(jù)的總數(shù),由公式(2)能得到最后一個所述分塊數(shù)據(jù)的大小。3.根據(jù)權(quán)利要求1或2所述的一種基于二維碼的物理隔離傳輸方法,其特征在于:所述步驟60中,若出現(xiàn)異常情況導致傳輸中斷,則執(zhí)行斷點續(xù)傳,所述斷點續(xù)傳包括如下步驟: 步驟61、所述第二網(wǎng)絡(luò)終端發(fā)送重傳指令至第一網(wǎng)絡(luò)終端,并從所述第一網(wǎng)絡(luò)終端獲取所述分塊數(shù)據(jù)總數(shù)和最后一個所述分塊數(shù)據(jù)的大小; 步驟62、所述第二網(wǎng)絡(luò)終端校驗本地緩存文件中已存的所述分塊數(shù)據(jù),并從本地緩存文件中循環(huán)讀入已存的所述分塊數(shù)據(jù); 步驟63、所述第二網(wǎng)絡(luò)終端對讀取到的已存的所述分塊數(shù)據(jù)分別進行計算獲取各自對應的哈希值,并與從所述第一網(wǎng)絡(luò)終端獲取的各所述分塊數(shù)據(jù)的哈希值進行比較是否相同:若是,則找出其中所述分塊數(shù)據(jù)對應的區(qū)塊序號最大的所述分塊數(shù)據(jù),從而獲取與尚未傳輸?shù)乃龇謮K數(shù)據(jù)對應的區(qū)塊序號列表;若否,則記入損壞的所述分塊數(shù)據(jù)對應的區(qū)塊序號列表中; 步驟64、所述第二網(wǎng)絡(luò)終端根據(jù)所述損壞的所述分塊數(shù)據(jù)對應的區(qū)塊序號列表或所述尚未傳輸?shù)乃龇謮K數(shù)據(jù)對應的區(qū)塊序號列表,向所述第一網(wǎng)絡(luò)終端循環(huán)發(fā)送獲取對應的所述分塊數(shù)據(jù)的指令,并開始異步接收所述第一網(wǎng)絡(luò)終端發(fā)送的對應的所述分塊數(shù)據(jù);步驟65、所述第二網(wǎng)絡(luò)終端對接收的所述分塊數(shù)據(jù)進行無限循環(huán)判斷直到接收到正確的所述分塊數(shù)據(jù); 步驟66、所述第二網(wǎng)絡(luò)終端將接收到的所述分塊數(shù)據(jù)寫入本地緩存文件并進行無限循環(huán)判斷直到所述分塊數(shù)據(jù)成功寫入本地緩存文件。 步驟67、判斷第二網(wǎng)絡(luò)終端是否接收到全部所述分塊數(shù)據(jù):若是,則結(jié)束傳輸;若否,則循環(huán)執(zhí)行步驟62到步驟66。
【專利摘要】本發(fā)明提供一種基于二維碼的物理隔離傳輸方法,包括:第一網(wǎng)絡(luò)終端對需要發(fā)送的原始數(shù)據(jù)進行自動分塊處理,得到分塊數(shù)據(jù);對各分塊數(shù)據(jù)進行加密并分別轉(zhuǎn)換為對應的二維碼圖片;在第一網(wǎng)絡(luò)終端上根據(jù)區(qū)塊序號按順序顯示各二維碼圖片得到組合二維碼圖片;第二網(wǎng)絡(luò)終端對組合二維碼圖片進行掃描;將采集到的組合二維碼圖片進行解密并拆分為對應的各二維碼圖片;將拆分得到的各二維碼圖片進行解析,獲得對應的各分塊數(shù)據(jù)并寫入緩存文件;第二網(wǎng)絡(luò)終端將接收的全部分塊數(shù)據(jù)進行合并,得到完整合并后的原始數(shù)據(jù)進行存儲。本發(fā)明的優(yōu)點是提高了數(shù)據(jù)傳輸?shù)目煽啃约皽蚀_性,解決了內(nèi)外網(wǎng)隔離造成的數(shù)據(jù)同步困難問題,保證了物理隔離傳輸?shù)陌踩院托省?br>【IPC分類】G06K19/06, H04L29/06
【公開號】CN105049425
【申請?zhí)枴緾N201510366303
【發(fā)明人】陳其其, 何新欣
【申請人】南威軟件股份有限公司
【公開日】2015年11月11日
【申請日】2015年6月28日