一種圖片分割傳輸方法及裝置的制造方法
【技術(shù)領域】
[0001]本發(fā)明涉及數(shù)據(jù)傳輸領域,尤其涉及一種圖片分割傳輸方法及裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡技術(shù)的發(fā)展,出現(xiàn)了許多圖片瀏覽網(wǎng)站或多媒體網(wǎng)站,服務器在向請求圖片的客戶端發(fā)送被請求圖片時,由于網(wǎng)絡影響可能會出現(xiàn)圖片的部分數(shù)據(jù)傳輸不完整導致客戶端無法查看圖片的情況,目前,解決該問題的通常手段是服務器向客戶端重新傳輸整幅圖片,顯然,在圖片較大的情況下,這種解決方法費時且浪費網(wǎng)絡資源。因此,需要一種提高圖片的網(wǎng)絡傳輸效率且能夠在圖片傳輸失敗的情況下快速向客戶端傳輸圖片的技術(shù)方案。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供一種圖片分割傳輸方法及裝置,用以將圖片分割傳輸給客戶端,達到提高圖片的網(wǎng)絡傳輸效率及在圖片傳輸失敗的情況下快速向客戶端傳輸圖片的目的。
[0004]本發(fā)明提供一種圖片分割傳輸方法,用于服務器,包括:
[0005]步驟Sll:根據(jù)客戶端發(fā)來的圖片請求,搜索并獲取被請求圖片;
[0006]步驟S12:將所述被請求圖片分割成N個圖片塊,并根據(jù)預定編號規(guī)則生成所述被請求圖片的N個圖片塊的序列號;其中,N為預先設置的圖片塊分割數(shù);
[0007]步驟S13:將所述被請求圖片的N個圖片塊依次生成為報文數(shù)據(jù)發(fā)送給客戶端;每次發(fā)送給客戶端的報文數(shù)據(jù)包括當前發(fā)送的圖片塊數(shù)據(jù)、圖片塊的序列號及該圖片塊數(shù)據(jù)對應的被請求圖片的圖片標識符。
[0008]本發(fā)明實施例的一些有益效果可以包括:
[0009]通過將圖片分割成多個圖片塊,并為各個圖片塊編號,使得在圖片傳輸失敗的情況下,服務器只需將傳輸失敗的圖片塊數(shù)據(jù)重新發(fā)送給客戶端即可,不用再將整個圖片重發(fā),從而達到提高圖片傳輸效率的目的。
[0010]在一個實施例中,所述步驟S12還包括:生成各圖片塊的校驗值;
[0011]所述報文數(shù)據(jù)還包括圖片塊的校驗值;
[0012]所述步驟S13之后,還包括步驟S14:根據(jù)客戶端發(fā)來的包含圖片標識符及圖片塊序列號的圖片塊請求,重新生成所述圖片塊請求指定的圖片塊對應的報文數(shù)據(jù)并發(fā)送給客戶端。
[0013]在該實施例中,由于報文數(shù)據(jù)包括圖片塊的校驗值,則客戶端可以根據(jù)圖片塊的校驗值校驗數(shù)據(jù)塊數(shù)據(jù)是否完整,從而驗證圖片塊數(shù)據(jù)傳輸是否失?。划攬D片塊數(shù)據(jù)傳輸失敗時,客戶端只需向服務器發(fā)送重傳傳輸失敗的圖片塊的請求,服務器在收到該請求后,將傳輸失敗的圖片塊數(shù)據(jù)重新發(fā)送給客戶端,達到有效提高圖片傳輸效率的目的。
[0014]在一個實施例中,所述圖片塊的校驗值為圖片塊數(shù)據(jù)的大小或MD5值。
[0015]在該實施例中,圖片塊數(shù)據(jù)的大小或MD5值是極易求取的值,同時也能客觀的檢驗對應的數(shù)據(jù)塊數(shù)據(jù)是否完整。
[0016]本發(fā)明提供一種圖片分割傳輸方法,用于客戶端,包括:
[0017]步驟S21:向服務器發(fā)送圖片請求;
[0018]步驟S22:接收服務器發(fā)來的報文數(shù)據(jù);
[0019]步驟S23:對當前接收的報文數(shù)據(jù)進行解析,獲取一個圖片塊數(shù)據(jù)、圖片塊的序列號及該圖片塊數(shù)據(jù)對應的被請求圖片的圖片標識符并緩存;
[0020]步驟S24:判斷緩存的被請求圖片的圖片塊數(shù)據(jù)的個數(shù)是否為N,是則執(zhí)行步驟S25,否則執(zhí)行步驟S22 ;其中,N為預先設置的圖片塊分割數(shù);
[0021]步驟S25:根據(jù)預定編號規(guī)則以及各圖片塊的序列號,將緩存的被請求圖片的圖片標識符對應的N個圖片塊數(shù)據(jù)組合成所述被請求圖片。
[0022]在該實施例中,客戶端接收到服務器發(fā)來的請求圖片的所有圖片塊數(shù)據(jù)后,按照預定編號規(guī)則以及各圖片塊的序列號,將被請求圖片的圖片標識符對應的圖片塊數(shù)據(jù)進行組合生成圖片,即可完成獲取圖片的工作。該方法具有實現(xiàn)簡單、獲取請求圖片快速的特點。
[0023]在一個實施例中,所述步驟S23包括:對當前接收的報文數(shù)據(jù)進行解析,獲取一個圖片塊數(shù)據(jù)、圖片塊的序列號、圖片塊的校驗值及該圖片塊數(shù)據(jù)對應的被請求圖片的圖片標識符并緩存;
[0024]所述步驟S23之后,步驟S24之前,還包括:
[0025]步驟S31:根據(jù)當前接收的報文數(shù)據(jù)中解析出的圖片塊的校驗值驗證同一報文數(shù)據(jù)中解析出的圖片塊數(shù)據(jù)是否完整,是則執(zhí)行S24,否則執(zhí)行S32 ;
[0026]步驟S32:向服務器發(fā)送圖片塊請求,所述圖片塊請求包含當前解析出的不完整的圖片塊數(shù)據(jù)對應的圖片塊的序列號和被請求圖片的圖片標識符。
[0027]在該實施例中,通過圖片塊的校驗值,客戶端即可快速、有效地驗證圖片塊數(shù)據(jù)是否完整,并在驗證的數(shù)據(jù)塊數(shù)據(jù)不完成時,只需向服務器發(fā)送包含當前解析出的不完整的圖片塊數(shù)據(jù)對應的圖片塊的序列號和被請求圖片的圖片標識符的圖片塊請求。服務器在接收到該請求后,將會重新發(fā)送客戶端請求的圖片數(shù)據(jù)塊數(shù)據(jù),從而有效地提高了圖片的傳輸效率。
[0028]本發(fā)明提供一種圖片分割傳輸裝置,用于服務器,包括:圖片獲取模塊,圖片分割模塊,圖片塊數(shù)據(jù)發(fā)送模塊;
[0029]所述圖片獲取模塊,用于根據(jù)客戶端發(fā)來的圖片請求,搜索并獲取被請求圖片,并將該被請求圖片發(fā)送給圖片分割模塊;
[0030]所述圖片分割模塊,用于將所述被請求圖片分割成N個圖片塊,并根據(jù)預定編號規(guī)則生成所述被請求圖片的N個圖片塊的序列號,并將被請求圖片的圖片標識符、各圖片塊數(shù)據(jù)及各圖片塊的序列號緩存;其中,N為預先設置的圖片塊分割數(shù);
[0031]所述圖片塊數(shù)據(jù)發(fā)送模塊,用于將所述圖片分割模塊得到的被請求圖片的N個圖片塊依次生成為報文數(shù)據(jù)發(fā)送給客戶端;每次發(fā)送給客戶端的報文數(shù)據(jù)包括當前發(fā)送的圖片塊數(shù)據(jù)、圖片塊的序列號及該圖片塊數(shù)據(jù)對應的被請求圖片的圖片標識符。
[0032]在一個實施例中,用于服務器的一種圖片分割傳輸裝置,還包括圖片塊數(shù)據(jù)獲取模塊;
[0033]所述圖片分割模塊還用于在將所述被請求圖片分割成N個圖片塊后,生成每個圖片塊的校驗值并緩存各圖片塊的校驗值;所述圖片塊的校驗值為圖片塊數(shù)據(jù)的大小或MD5值;
[0034]所述圖片塊數(shù)據(jù)獲取模塊,用于根據(jù)客戶端發(fā)來的包含圖片標識符及圖片塊序列號的圖片塊請求,獲取所述圖片分割模塊緩存的該圖片塊請求指定的圖片塊數(shù)據(jù)和圖片塊的校驗值,并將獲取的圖片塊數(shù)據(jù)、圖片塊的校驗值、圖片塊的序列號及該圖片塊數(shù)據(jù)對應的被請求圖片的圖片標識符發(fā)送給所述圖片塊數(shù)據(jù)發(fā)送模塊;
[0035]所述圖片塊數(shù)據(jù)發(fā)送模塊,還用于將所述圖片塊數(shù)據(jù)獲取模塊發(fā)來的圖片塊數(shù)據(jù)、圖片塊的校驗值、圖片塊的序列號及該圖片塊數(shù)據(jù)對應的被請求圖片的圖片標識符生成為報文數(shù)據(jù)發(fā)送給客戶端。
[0036]本發(fā)明還提供一種圖片分割傳輸裝置,用于客戶端,包括:請求模塊,接收模塊,解析模塊,第一判斷模塊和組合模塊;
[0037]所述請求模塊,用于接收用戶的圖片請求,并將所述圖片請求發(fā)送給服務器;
[0038]所述接收模塊,用于接收服務器發(fā)來的報文數(shù)據(jù),并發(fā)送給所述解析模塊;
[0039]所述解析模塊,用于對當前接收的報文數(shù)據(jù)進行解析,獲取一個圖片塊數(shù)據(jù)、圖片塊的序列號及該圖片塊數(shù)據(jù)對應的被請求圖片的圖片標識符并緩存,并在緩存完后向所述第一判斷模塊發(fā)送計數(shù)指令;
[0040]所述第一判斷模塊,用于根據(jù)所述計數(shù)指令令當前計數(shù)值M = M+1,隨后判斷M是否為N,是則令M = O并向所述組合模塊發(fā)送組合指令;其中,M為當前已緩存的被請求圖片的圖片塊數(shù)據(jù)的個數(shù),初始值為O ;N為預先設置的圖片塊分割數(shù);
[0041]所述組合模塊,用于在接收到所述第一判斷模塊發(fā)來的組合指令后,將所述解析模塊緩存的N個圖片塊數(shù)據(jù)根據(jù)預定編號規(guī)則