欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議的文件斷點上載方法

文檔序號:7600954閱讀:229來源:國知局
專利名稱:一種基于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議的文件斷點上載方法
技術(shù)領(lǐng)域
本發(fā)明屬于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議應(yīng)用領(lǐng)域,具體涉及一種基于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議的文件斷點上載方法。
背景技術(shù)
FTP(File Transfer Protocol)即標(biāo)準(zhǔn)文件傳輸協(xié)議(RFC959),是在TCP(Transmission Control Protocol,傳輸控制協(xié)議)/IP(InternetProtocol,因特網(wǎng)協(xié)議)環(huán)境中傳輸文件的一種公共標(biāo)準(zhǔn)協(xié)議,一般在OSI/RM(Open Systems Interconnection Reference Model,開放系統(tǒng)互聯(lián)參考模型)的應(yīng)用層實現(xiàn)。FTP是目前因特網(wǎng)上共享文件和傳輸文件的最主要方法,通過FTP的應(yīng)用,可以很方便地對遠程文件進行訪問和管理,并為網(wǎng)絡(luò)主機之間高效可靠的傳輸文件提供協(xié)議支持。FTP協(xié)議提供了一個名為REST的基本命令支持文件下載過程的中斷后續(xù)傳,但卻沒有提供文件上載過程中斷后續(xù)傳的基本命令。
FTP協(xié)議模型是一種典型的C/S(Client-Server,客戶端-服務(wù)器)結(jié)構(gòu),由一個或多個FTP客戶端和一個FTP服務(wù)器構(gòu)成,具體結(jié)構(gòu)如圖1所示。FTP客戶端與FTP服務(wù)器之間交換文件時將會建立兩種連接,一種是命令連接,另一種是數(shù)據(jù)連接。命令連接是雙方通訊和交流的信道,客戶端發(fā)出的FTP基本命令和服務(wù)器返回的應(yīng)答信息通過這個信道來傳送。數(shù)據(jù)連接是雙方進行文件傳送的信道,上載或者下載的文件數(shù)據(jù)通過該信道來傳送,同時因數(shù)據(jù)連接發(fā)起方的不同又將文件傳送模式分為主動模式和被動模式,主動模式是指由FTP服務(wù)器發(fā)起數(shù)據(jù)連接,被動模式是指由FTP客戶端發(fā)起數(shù)據(jù)連接。
FTP協(xié)議提供了幾十條基本命令用于FTP客戶端與FTP服務(wù)器之間的控制與交互,這些基本命令包括USER、PASS、PORT、PASV、STOR、STOU、APPE、RETR、REST等等。FTP客戶端發(fā)出的命令和FTP服務(wù)器回復(fù)的信息都在命令連接中傳送,遵循請求-響應(yīng)機制,其基本交互過程簡述如下(1)FTP客戶端發(fā)送基本FTP控制命令到FTP服務(wù)器;(2)FTP服務(wù)器首先執(zhí)行該命令,然后將命令的執(zhí)行結(jié)果返回給FTP客戶端;(3)FTP客戶端解析服務(wù)器返回的執(zhí)行結(jié)果信息,進而決定下一步的操作。
現(xiàn)在廣泛使用的FTP客戶端所實現(xiàn)的文件上載過程,以被動傳輸模式為例,主動傳輸模式類似,原理是相同的,具體步驟如下(1)FTP客戶端利用套接字(Socket)和TCP/IP協(xié)議與目標(biāo)FTP服務(wù)器建立命令連接;(2)FTP客戶端發(fā)送FTP用戶名,命令格式為USER xxxx\r\n,此處xxxx是指用戶名;(3)FTP客戶端發(fā)送FTP用戶密碼,命令格式為PASS xxxx\r\n,此處xxxx是指用戶密碼;(4)FTP客戶端設(shè)置數(shù)據(jù)傳送格式,如果以二進制格式傳送文件則命令為TYPE i\r\n;(5)FTP客戶端發(fā)送PASV\r\n命令,并從FTP服務(wù)器的回復(fù)中檢索出服務(wù)器的IP地址和臨時開放的端口號;(6)FTP客戶端發(fā)送STOR xxxx\r\n命令,其中STOR后面的參數(shù)xxxx是指要在服務(wù)器上創(chuàng)建的文件名;(7)FTP客戶端重新創(chuàng)建一個套接字(Socket),利用步驟(5)中FTP服務(wù)器返回的IP地址和臨時端口號與服務(wù)器建立數(shù)據(jù)連接;(8)FTP客戶端利用數(shù)據(jù)連接把本地文件傳送到FTP服務(wù)器上,文件傳送結(jié)束后關(guān)閉此數(shù)據(jù)連接;(9)FTP客戶端關(guān)閉命令連接,至此一次文件上載過程結(jié)束。
圖2給出了目前廣泛使用的FTP客戶端所實現(xiàn)的文件上載過程。
上述的目前通用的FTP文件上載方法在網(wǎng)絡(luò)足夠穩(wěn)定、網(wǎng)速足夠快和文件大小適中的情況下能夠順利完成文件上載的功能,但是如果在文件傳送的過程中因為種種原因發(fā)生中斷,則FTP服務(wù)器會把已經(jīng)上載到服務(wù)器上的文件塊當(dāng)成不合法的文件刪除,因此下一次無法恢復(fù)中斷現(xiàn)場,所以就不得不重新上載整個文件。由于因特網(wǎng)的網(wǎng)絡(luò)環(huán)境很復(fù)雜,不同用戶接入因特網(wǎng)的速度也有快有慢,而且有時用戶上載的文件很大,因此使用目前通用的FTP文件上載的方法傳送過程中發(fā)生中斷的可能性也就很大,但中斷后又必須重新上載整個文件,因此給因特網(wǎng)用戶帶來不便,特別是在因特網(wǎng)環(huán)境復(fù)雜、易中斷、數(shù)據(jù)傳輸速度慢以及傳送文件巨大、傳輸時間長的情況下,這種不足體現(xiàn)得更為明顯。
目前沒有發(fā)現(xiàn)任何相關(guān)文檔、文獻、專利、記錄了本發(fā)明中描述的斷點上載方法。

發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是利用現(xiàn)有的FTP協(xié)議基本命令和特定的控制技術(shù),實現(xiàn)FTP客戶端在前一次文件上載過程被中斷時下一次依然能從斷點處繼續(xù)上載的功能。
為達到以上目的,本發(fā)明采用的技術(shù)方案是一種基于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議的文件斷點上載方法,包括以下步驟(1)FTP客戶端利用套接字和TCP/IP協(xié)議與目標(biāo)FTP服務(wù)器建立命令連接;(2)FTP客戶端先后向FTP服務(wù)器發(fā)送用戶名和密碼,從而登錄FTP服務(wù)器;(3)登錄后,F(xiàn)TP客戶端將數(shù)據(jù)傳送格式設(shè)置為二進制格式;(4)FTP客戶端將數(shù)據(jù)傳輸模式設(shè)置為被動模式,并從FTP服務(wù)器的回復(fù)信息中檢索出FTP服務(wù)器的IP地址和其臨時開放的用于建立數(shù)據(jù)連接的端口號;(5)FTP客戶端向FTP服務(wù)器發(fā)出一個文件上載命令;(6)FTP客戶端重新創(chuàng)建一個套接字,利用該套接字和步驟(4)中FTP服務(wù)器返回的IP地址和臨時端口號與FTP服務(wù)器建立數(shù)據(jù)連接;(7)建立數(shù)據(jù)連接之后,F(xiàn)TP客戶端先從需要上載的文件中選擇部分內(nèi)容作為文件頭,將其傳送到FTP服務(wù)器端,然后關(guān)閉該數(shù)據(jù)連接,此時服務(wù)器會認(rèn)為當(dāng)前文件已經(jīng)正常傳送結(jié)束了,因而會把該文件頭作為合法文件保存在服務(wù)器端,相當(dāng)于需要上載的文件在FTP服務(wù)器上留下了一個存根,為后續(xù)的文件追加和可能的斷點上載打下了基礎(chǔ);向FTP服務(wù)器傳送文件頭另外一個原因是FTP基本協(xié)議不提供在FTP服務(wù)器端創(chuàng)建空文件的基本命令;如果傳送文件頭時中斷,則需要重新上載該文件頭,但是因為文件頭很小,所以即使重新傳送耗費的時間也可以忽略不計;(8)重復(fù)步驟(3)和步驟(4);(9)FTP客戶端向FTP服務(wù)器發(fā)出追加上載文件的命令,此處的文件名與步驟(5)中的文件名相同;(10)FTP客戶端重新創(chuàng)建一個套接字,利用該套接字和步驟(8)中FTP服務(wù)器返回的IP地址和臨時端口號與FTP服務(wù)器之間再次建立數(shù)據(jù)連接;(11)FTP客戶端將文件體分成若干個文件塊,文件體是指需要上載的文件除去文件頭后余下的部分,然后將文件塊傳送到服務(wù)器端并追加到已存在于FTP服務(wù)器的文件里,直至剩余內(nèi)容全部分塊傳送完畢,然后關(guān)閉該數(shù)據(jù)連接,如果在分塊追加文件體時發(fā)生中斷,此時需要重新上載發(fā)生中斷的文件塊,但是由于損失的只是一小塊文件傳送的時間,因此對整個文件的影響也可以忽略;(12)FTP客戶端關(guān)閉命令連接,至此一次文件上載過程結(jié)束。
更進一步,步驟(4)中FTP客戶端的數(shù)據(jù)傳輸模式也可以設(shè)置為主動模式,其他步驟一樣。
步驟(7)中所選的文件頭大小為0.1k字節(jié)到1k字節(jié),步驟(11)中對文件體進行分塊時,每個文件塊的大小1k字節(jié)到16k字節(jié)。
本發(fā)明的效果在于可以在不改變現(xiàn)有FTP協(xié)議的前提下在FTP客戶端實現(xiàn)文件上載過程中的斷點續(xù)傳,將文件傳輸過程中由于中斷所造成的重復(fù)上載的損失降到了最少。


圖1是FTP協(xié)議模型示意圖;圖2是當(dāng)前普遍使用的FTP客戶端文件上載實現(xiàn)流程圖;圖3是本發(fā)明所應(yīng)用的FTP客戶端文件上載實現(xiàn)流程圖;圖4是本發(fā)明所應(yīng)用的FTP客戶端中斷后進行文件斷點上載的實現(xiàn)流程圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作一步的描述,以被動模式為例,主動模式類似,二者的原理是一致的(1)FTP客戶端如果運用本發(fā)明進行FTP文件上載的實施過程詳細(xì)描述如下1)FTP客戶端創(chuàng)建本地套接字,應(yīng)用TCP/IP協(xié)議與目標(biāo)FTP服務(wù)器的開放端口,端口一般默認(rèn)是21,也可能是別的,建立命令連接;2)FTP客戶端先后發(fā)送USER xxxx\r\n和PASS xxxx\r\n命令將用戶名和密碼發(fā)送到FTP服務(wù)器端以登錄FTP服務(wù)器,此處USER xxxx\r\n命令中的xxxx是指用戶名,PASS xxxx\r\n命令中的xxxx是指用戶密碼;3)登錄后,F(xiàn)TP客戶端應(yīng)用TYPE命令設(shè)置數(shù)據(jù)傳送格式,如果以二進制格式傳送文件則發(fā)出的命令為TYPE i\r\n;4)FTP客戶端發(fā)送PASV\r\n命令,待FTP服務(wù)器給出回復(fù)后從回復(fù)信息中檢索出FTP服務(wù)器的IP地址和其臨時開放的用于建立數(shù)據(jù)連接的端口號;5)FTP客戶端發(fā)送STOR xxxx\r\n命令,向FTP服務(wù)器表明要發(fā)起一次文件上載過程,STOR后面的參數(shù)xxxx是指要在服務(wù)器上創(chuàng)建的文件名;6)FTP客戶端重新創(chuàng)建一個套接字,利用步驟4)中FTP服務(wù)器返回的IP地址和臨時端口號用該套接字與服務(wù)器之間建立數(shù)據(jù)連接;7)FTP客戶端先從需要上載的文件中取出大小為1K字節(jié)的文件頭,然后將該文件頭數(shù)據(jù)利用數(shù)據(jù)連接傳送到FTP服務(wù)器端,然后關(guān)閉該數(shù)據(jù)連接。如果需要上載文件的實際體積小于等于1K字節(jié)則文件已經(jīng)上載完畢,直接跳轉(zhuǎn)到步驟13);如果文件體積大于1K字節(jié),由于數(shù)據(jù)連接被客戶端正常關(guān)閉,因此服務(wù)端就認(rèn)為文件已經(jīng)上載結(jié)束,所以也正常關(guān)閉了已上載到服務(wù)器上的文件部分,雖然在FTP客戶端看來這個文件是不完整、不可用的,但在FTP服務(wù)器看來這個文件是完整的、合法的,相當(dāng)于被上載的文件在FTP服務(wù)器上留下了一個存根,為后續(xù)的文件追加和可能的斷點上載打下了基礎(chǔ);8)FTP客戶端再次發(fā)送TYPE命令設(shè)置數(shù)據(jù)傳送格式,步驟同3);9)FTP客戶端再次發(fā)送PASV\T\n命令并獲取到FTP服務(wù)器返回的IP地址和臨時開放的端口號,步驟同4);10)FTP客戶端發(fā)送APPE xxxx\r\n命令,向FTP服務(wù)器表明要發(fā)起一次文件追加上載的過程,APPE后面的參數(shù)xxxx是指文件名,該文件名與步驟5)中的文件名相同;11)FTP客戶端重新創(chuàng)建一個套接字,利用步驟9)中FTP服務(wù)器返回的IP地址和臨時端口號用該套接字與服務(wù)器之間建立數(shù)據(jù)連接;12)FTP客戶端將文件體以16K字節(jié)為單位分成若干個文件塊,文件體是指需要上載的文件除去文件頭余下的部分,然后將文件塊利用步驟11)中建立的數(shù)據(jù)連接把數(shù)據(jù)傳送到FTP服務(wù)器端,直至文件體的所有數(shù)據(jù)都傳送結(jié)束,此時關(guān)閉該數(shù)據(jù)連接;13)FTP客戶端關(guān)閉命令連接,至此一次文件上載過程結(jié)束。
上述過程具體實現(xiàn)流程圖參見圖3。
(2)如果FTP客戶端在采用本發(fā)明進行上載文件的過程中發(fā)生中斷,則可按如下方式實現(xiàn)文件的斷點上載1)FTP客戶端創(chuàng)建本地套接字,應(yīng)用TCP/IP協(xié)議與目標(biāo)FTP服務(wù)器的開放端口,端口一般默認(rèn)是21,也可能是別的,建立命令連接;2)FTP客戶端先后發(fā)送USER xxxx\r\n和PASS xxxx\r\n命令將用戶名和密碼發(fā)送到FTP服務(wù)器端以登錄FTP服務(wù)器,此處USER xxxx\r\n命令中的xxxx是指用戶名,PASS xxxx\r\n命令中的xxxx是指用戶密碼;3)如果上一次中斷發(fā)生在上載文件頭的過程中,則重新傳送整個文件,實現(xiàn)流程見圖3;4)如果上一次中斷發(fā)生在文件體分塊追加的過程中,則FTP客戶端首先向FTP服務(wù)器發(fā)送SIZE xxxx\r\n命令,此處xxxx是需要進行斷點上載的文件名,然后從FTP服務(wù)器返回的信息中檢索出目標(biāo)文件已上載到服務(wù)器上的文件體積,假設(shè)該體積是X字節(jié);5)FTP客戶端應(yīng)用TYPE命令設(shè)置數(shù)據(jù)傳送格式,如果以二進制格式傳送文件則發(fā)出的命令為TYPE i\r\n;6)FTP客戶端發(fā)送PASV\r\n命令,待FTP服務(wù)器給出回復(fù)后從回復(fù)信息中檢索出FTP服務(wù)器的IP地址和其臨時開放的用于建立數(shù)據(jù)連接的端口號;7)FTP客戶端發(fā)送APPE xxxx\r\n命令,此處xxxx是需要進行斷點上載的文件名,向FTP服務(wù)器表明要發(fā)起一次文件追加上載的過程;8)FTP客戶端重新創(chuàng)建一個套接字,利用步驟6)中FTP服務(wù)器返回的IP地址和臨時端口號用該套接字與服務(wù)器之間建立數(shù)據(jù)連接;9)FTP客戶端把步驟4)中獲得的X數(shù)值做為文件偏移值,將本地文件的文件讀指針偏移到X字節(jié)處,然后以16K字節(jié)為單位繼續(xù)從文件中讀取數(shù)據(jù)并利用步驟8)中建立的數(shù)據(jù)連接把數(shù)據(jù)傳送到FTP服務(wù)器端,直至文件的所有剩余數(shù)據(jù)都傳送結(jié)束,此時關(guān)閉該數(shù)據(jù)連接;10)FTP客戶端關(guān)閉命令連接,至此一次文件的斷點上載過程結(jié)束。
上述的文件斷點上載過程流程圖參見圖4。
權(quán)利要求
1.一種基于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議的文件斷點上載方法,包括以下步驟(1)FTP客戶端利用套接字和TCP/IP協(xié)議與目標(biāo)FTP服務(wù)器建立命令連接;(2)FTP客戶端先后向FTP服務(wù)器發(fā)送用戶名和密碼,從而登錄FTP服務(wù)器;(3)登錄后,F(xiàn)TP客戶端將數(shù)據(jù)傳送格式設(shè)置為二進制格式;(4)FTP客戶端將數(shù)據(jù)傳輸模式設(shè)置為被動模式,并從FTP服務(wù)器的回復(fù)信息中檢索出FTP服務(wù)器的IP地址和其臨時開放的用于建立數(shù)據(jù)連接的端口號;(5)FTP客戶端向FTP服務(wù)器發(fā)出一個文件上載命令;(6)FTP客戶端重新創(chuàng)建一個套接字,利用該套接字和步驟(4)中FTP服務(wù)器返回的IP地址和臨時端口號與FTP服務(wù)器建立數(shù)據(jù)連接;(7)建立數(shù)據(jù)連接之后,F(xiàn)TP客戶端先從需要上載的文件中選擇部分內(nèi)容作為文件頭,將其傳送到FTP服務(wù)器端,然后關(guān)閉該數(shù)據(jù)連接;(8)重復(fù)步驟(3)和步驟(4);(9)FTP客戶端向FTP服務(wù)器發(fā)出追加上載文件的命令,此處的文件名與步驟(5)中的文件名相同;(10)FTP客戶端重新創(chuàng)建一個套接字,利用該套接字和步驟(8)中FTP服務(wù)器返回的IP地址和臨時端口號與FTP服務(wù)器之間再次建立數(shù)據(jù)連接;(11)FTP客戶端將文件體分成若干個文件塊,文件體是指需要上載的文件除去文件頭后余下的部分,然后將文件塊傳送到服務(wù)器端并追加到已存在于FTP服務(wù)器的文件里,直至剩余內(nèi)容全部分塊傳送完畢,然后關(guān)閉該數(shù)據(jù)連接,如果在分塊追加文件體時發(fā)生中斷,此時需要重新上載發(fā)生中斷的文件塊,但是由于損失的只是一小塊文件傳送的時間,因此對整個文件的影響也可以忽略;(12)FTP客戶端關(guān)閉命令連接,至此一次文件上載過程結(jié)束。
2.如權(quán)利要求1所述的一種基于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議的文件斷點上載方法,其特征是步驟(4)中FTP客戶端的數(shù)據(jù)傳輸模式也可以設(shè)置為主動模式,其他步驟一樣。
3.如權(quán)利要求1或2所述的一種基于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議的文件斷點上載方法,其特征是步驟(7)中所選的文件頭大小為0.1k字節(jié)到1k字節(jié)。
4.如權(quán)利要求3所述的一種基于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議的文件斷點上載方法,其特征是步驟(11)中對文件體進行分塊時,每個文件塊的大小為1k字節(jié)到16k字節(jié)。
全文摘要
本發(fā)明涉及一種基于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議即FTP協(xié)議的文件斷點上載方法,屬于因特網(wǎng)標(biāo)準(zhǔn)文件傳輸協(xié)議應(yīng)用領(lǐng)域?,F(xiàn)有技術(shù)中,利有FTP協(xié)議進行文件上載時,在傳送過程中可能發(fā)生中斷,F(xiàn)TP服務(wù)器會把已經(jīng)上載的文件塊當(dāng)成不合法的文件刪除,所以中斷后只能重新上載整個文件,耗時耗力。本發(fā)明所述的方法,在需要上載的文件中選擇部分內(nèi)容作為文件頭發(fā)送到FTP服務(wù)器,之后關(guān)閉與服務(wù)器之間的數(shù)據(jù)連接,然后重新與FTP服務(wù)器建立數(shù)據(jù)連接,將剩余文件內(nèi)容分塊全部傳送并追加到已存在服務(wù)器的文件里。采用本發(fā)明所述的方法,可以在現(xiàn)有FTP協(xié)議的基礎(chǔ)上實現(xiàn)文件上載過程中的斷點續(xù)傳,將由于中斷所造成的重復(fù)上載的損失降到了最少。
文檔編號H04L29/06GK1622553SQ200410101648
公開日2005年6月1日 申請日期2004年12月20日 優(yōu)先權(quán)日2004年12月20日
發(fā)明者王偉 申請人:北京北大方正電子有限公司, 北京大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
曲水县| 华亭县| 芒康县| 水富县| 凤凰县| 孟津县| 镇巴县| 竹山县| 沐川县| 廉江市| 缙云县| 仙居县| 蓬安县| 城市| 中阳县| 公主岭市| 广汉市| 连江县| 乐昌市| 宣恩县| 抚宁县| 崇仁县| 蓬溪县| 连平县| 汝阳县| 米林县| 恩平市| 西平县| 红原县| 基隆市| 安乡县| 沙洋县| 海口市| 诸暨市| 古浪县| 黔江区| 常宁市| 图木舒克市| 常山县| 郑州市| 于都县|