一種文件接收和補包的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種文件接收和補包的方法,尤其是指一種能在文件接收不完整的情況下采用另外一種途徑將文件丟失的部分補完整的文件接收和補包的方法。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)一般是采用單一的途徑進行文件下載,比如通過Internet網(wǎng)絡(luò)進行文件下載,也有的會通過串口或者USB方式進行應(yīng)答式的文件下載。但是不管采用哪種方式,文件下載的途徑是單一的,如果在文件下載過程中鏈路斷開或者文件服務(wù)器故障,由于接收途徑單一,鏈路及文件服務(wù)器恢復(fù)正常需要一定的時間延時,將造成文件不能及時接收完整或者因為其它原因?qū)е掠肋h不能接收完整。
【發(fā)明內(nèi)容】
[0003]有鑒于上述問題,本發(fā)明提供了一種文件接收和補包的方法,包括:
[0004]采用第一接收途徑從文件源接收原始文件的文件數(shù)據(jù);
[0005]判斷接收的所述原始文件的完整性,在判斷得到所述原始文件存在缺失時計算分析所述原始文件中缺失的文件數(shù)據(jù),采用第二接收途徑從所述文件源處對所述丟失的文件數(shù)據(jù)進行文件補包;
[0006]將所述補包的文件數(shù)據(jù)插入到所述原始文件中的正確位置,完成對所述原始文件的全部接收。
[0007]本發(fā)明文件接收和補包的方法,通過計算分析所述原始文件中丟失的文件數(shù)據(jù),并采用第二接收途徑從文件源對所述丟失的文件數(shù)據(jù)進行文件補包,保證了原始文件的完整性。避免了傳統(tǒng)文件接收時,可能因為鏈路問題或者文件服務(wù)器故障引起的文件接收不完整。
[0008]本發(fā)明文件接收和補包的方法的進一步改進在于,采用第一接收途徑從文件源接收原始文件的文件數(shù)據(jù),包括:
[0009]將所述原始文件的文件數(shù)據(jù)按照協(xié)議封裝成文件幀,所述文件幀包括控制幀和數(shù)據(jù)幀,所述控制幀中包含接收文件的總大小、總的文件幀數(shù)以及文件名,所述數(shù)據(jù)幀中包含所述原始文件的文件數(shù)據(jù)的文件幀號;
[0010]在文件接收過程中,記錄下已接收到的文件數(shù)據(jù)的文件幀號;
[0011]從所述已接收到的文件數(shù)據(jù)的文件幀中解析出實際文件數(shù)據(jù),將所述實際文件數(shù)據(jù)予以保存。
[0012]本發(fā)明文件接收和補包的方法的進一步改進在于,采用第二接收途徑從所述文件源處對所述丟失的文件數(shù)據(jù)進行文件補包,包括:
[0013]探測文件發(fā)送的輪詢次數(shù),并計算已接收到的文件數(shù)據(jù)的百分比信息;
[0014]根據(jù)預(yù)設(shè)的輪詢次數(shù)和百分比信息,將所述實際文件數(shù)據(jù)與所述控制幀進行比對,并從所述文件源處下載所述原始文件中丟失的文件數(shù)據(jù)。
[0015]本發(fā)明文件接收和補包的方法的進一步改進在于,所述第一接收途徑為無線傳輸方式。
[0016]本發(fā)明文件接收和補包的方法的進一步改進在于,所述第二接收途徑為HTTP協(xié)議傳輸方式。
[0017]本發(fā)明文件接收和補包的方法的進一步改進在于,所述HTTP協(xié)議傳輸方式為3G、4G或有線傳輸方式。
[0018]本發(fā)明文件接收和補包的方法的進一步改進在于,采用第二接收途徑從文件源處對所述丟失的文件數(shù)據(jù)進行文件補包之后,對所述補包的數(shù)據(jù)與已接收到的所述原始文件的文件數(shù)據(jù)進行CRC校驗,比對一致時將所述補包的文件數(shù)據(jù)插入到所述原始文件中的正確位置。
[0019]本發(fā)明文件接收和補包的方法的進一步改進在于,將所述補包的文件數(shù)據(jù)插入到所述原始文件中的正確位置之后,對所述原始文件的全部文件數(shù)據(jù)進行一次MD5校驗。
【附圖說明】
[0020]圖1是本發(fā)明文件接收和補包的方法的流程示意圖。
[0021]圖2是本發(fā)明文件接收和補包的方法中控制幀的基本定義格式。
[0022]圖3是本發(fā)明文件接收和補包的方法中數(shù)據(jù)幀的基本定義格式。
【具體實施方式】
[0023]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]配合參看圖1所示,圖1是本發(fā)明文件接收和補包的方法的流程示意圖。本發(fā)明文件接收和補包的方法,包括:
[0025]步驟S101:采用第一接收途徑從文件源接收原始文件的文件數(shù)據(jù);
[0026]步驟S102:在所述第一接收途徑出現(xiàn)鏈路斷開或者文件服務(wù)器故障時,判斷接收的所述原始文件的完整性,在判斷得到所述原始文件存在缺失時計算分析所述原始文件中缺失的文件數(shù)據(jù),采用第二接收途徑從所述文件源處對所述丟失的文件數(shù)據(jù)進行文件補包;
[0027]步驟S103:將所述補包的文件數(shù)據(jù)插入到所述原始文件中的正確位置,完成對所述原始文件的全部接收。
[0028]本發(fā)明文件接收和補包的方法,通過計算分析所述原始文件中丟失的文件數(shù)據(jù),并采用第二接收途徑從文件源對所述丟失的文件數(shù)據(jù)進行文件補包,保證了原始文件的完整性。避免了傳統(tǒng)文件接收時,可能因為鏈路問題或者文件服務(wù)器故障引起的文件接收不完整。
[0029]其中,在上述步驟SlOl中,采用第一接收途徑從文件源接收原始文件的文件數(shù)據(jù),包括:
[0030]將所述原始文件的文件數(shù)據(jù)按照協(xié)議封裝成文件幀,所述文件幀包括控制幀和數(shù)據(jù)幀,所述控制幀中包含接收文件的總大小、總的文件幀數(shù)以及文件名,所述數(shù)據(jù)幀中包含所述原始文件的文件數(shù)據(jù)的文件幀號;
[0031]在文件接收過程中,記錄下已接收到的文件數(shù)據(jù)的文件幀號;
[0032]從所述已接收到的文件數(shù)據(jù)的文件幀中解析出實際文件數(shù)據(jù),將所述實際文件數(shù)據(jù)予以保存。
[0033]優(yōu)選地,所述第一接收途徑為無線傳輸方式。
[0034]在上述步驟S102中,采用第二接收途徑從所述文件源處對所述丟失的文件數(shù)據(jù)進行文件補包,包括:
[0035]探測文件發(fā)送的輪詢次數(shù),并計算已接收到的文件數(shù)據(jù)的百分比信息;
[0036]根據(jù)預(yù)設(shè)的輪詢次數(shù)和百分比信息,將所述實際文件數(shù)據(jù)與所述控制幀進行比對,并從所述文件源處下載所述原始文件中丟失的文件數(shù)據(jù)。
[0037]優(yōu)選地,所述第二接收途徑為HTTP協(xié)議傳輸方式,如3G、4G或有線傳輸方式。
[0038]進一步地,在采用第二接收途徑從文件源對所述丟失的文件數(shù)據(jù)進行文件補包之后,對所述補包的數(shù)據(jù)與已接收到的所述原始文件的文件數(shù)據(jù)進行CRC校驗,比對一致時將所述補包的文件數(shù)據(jù)插入到所述原始文件中的正確位置,以保證補包的數(shù)據(jù)的文件幀的正確性。
[0039]