国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
FTP實現(xiàn)斷點續(xù)傳
FTP客戶端實現(xiàn)要建立兩個通道,一個控制命令通道,讓FTP服務(wù)器知道客戶端要干什么,一個數(shù)據(jù)傳輸通道。所謂的兩個通道只不過是兩個調(diào)用了connect函數(shù)的連接,只是控制命令通道專門用來傳輸一些字符串命令信息,而數(shù)據(jù)通道則是用來傳輸文件??刂泼钔ǖ酪欢ㄊ怯煽蛻舳讼蚍?wù)器的連接(默認的端口是21,也可以指定端口,這要看服務(wù)器的設(shè)置)。連接的過程完成了FTP的登錄。數(shù)據(jù)通道則不一定啦,具體哪個連哪個,請看下面對PASV命令的解釋。 
 
  其實FTP斷點續(xù)傳的原理很簡單,可分為斷點下載和斷點上傳。 
  客戶端的實現(xiàn)步驟如下: 
一、下載:  
1、向服務(wù)器發(fā)送“REST + 本地文件長度”命令,告訴服務(wù)器,客戶端要斷點下載了。這時服務(wù)器還不知道客戶端要下載哪個文件; 
   要實現(xiàn)FTP的斷點續(xù)傳,F(xiàn)TP服務(wù)器必須支持REST指令,這條指令在FTP協(xié)議文本RFC959中就已經(jīng)定義了,不過它不是FTP服務(wù)器必須支持的指令。一般,你可以在下載前使用REST 100命令進行實驗,如果服務(wù)器正常執(zhí)行了這條命令,說明該服務(wù)器支持FTP斷點續(xù)傳。REST后面跟的數(shù)表示下載文件的起始位置,而REST 0表示從文件最開始處下載。REST命令本身并不執(zhí)行下載功能,你仍需要使用RETR命令執(zhí)行下載工作。 
2、向服務(wù)器發(fā)送“RETR + 文件名”命令,通知服務(wù)器要下載的文件名,這時服務(wù)器開始定位文件指針讀文件并發(fā)送數(shù)據(jù)。 
3、客戶端定位本地文件指針(文件末尾); 
4、兩端的準備工作都做完了以后,客戶端創(chuàng)建socket,以被動或非被動方式建立數(shù)據(jù)通道,循環(huán)調(diào)用recv接收數(shù)據(jù)并追加入本地文件; 
 
二、上傳: 
1、獲取服務(wù)器上和本地要上傳文件的同名文件大?。?nbsp;
2、向服務(wù)器發(fā)送“APPE + 文件名”,通知服務(wù)器,接下來從數(shù)據(jù)通道發(fā)送給你的數(shù)據(jù)要附加到這個文件末尾。 
3、定位本地文件指針(和FTP上文件大小相同的位置) 
4、從文件指針處讀數(shù)據(jù)并發(fā)送。 
 
  好了,F(xiàn)TP斷點續(xù)傳的原理就這么簡單。代碼里將斷點上傳和斷點下載放到同一個函數(shù)(MoveFile)里,通過get參數(shù)說明是上傳還是下載。當然,整個FTP類的實現(xiàn)有800多行,包括登錄、退出、獲取FTP文件大小、刪除FTP服務(wù)器上文件、響應(yīng)服務(wù)器,解析響應(yīng)信息等函數(shù)。相應(yīng)的注釋代碼里都有,這里就不一一熬述了。 
 
  這里重點說說PASV模式,即被動模式,這是FTP命令里比較不容易理解的一個,這條命令請求服務(wù)器在某個端口(非FTP默認端口或控制命令端口)創(chuàng)建一個監(jiān)聽socket,服務(wù)器創(chuàng)建的端口號會在客戶端的控制命令通道上得到響應(yīng)。得到這個端口號后,客戶端就可以創(chuàng)建新的socket(數(shù)據(jù)通道)connect過去,并進行文件傳輸?shù)裙ぷ鳌7駝t,如果為非被動模式,那么監(jiān)聽的socket由客戶端創(chuàng)建,服務(wù)器connect過來。 
 
  對于這條命令的存在我是這么理解的,存在這么一種情況:客戶端的IP是個內(nèi)網(wǎng)的IP,服務(wù)器的IP是個外網(wǎng)的,當進行數(shù)據(jù)傳輸時內(nèi)網(wǎng)的IP對于服務(wù)器是不可見的,只有由服務(wù)器啟動監(jiān)聽socket才能建立數(shù)據(jù)通道,所以必須以被動模式進行。:)
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
FTP是什么
淺析FTP的工作原理
ftp-主動模式(PORT)和被動模式(PASV)
FTP與SFTP兩者有什么區(qū)別
Linux中FTP和Sftp有什么不同?
關(guān)于FTP文件傳輸協(xié)議說明,帶你了解更詳情的文件傳輸協(xié)議
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服