『壹』 FTP該如何實現斷點續傳
客戶端的實現步驟如下:
一、下載:
1、向伺服器發送「REST + 本地文件長度」命令,告訴伺服器,客戶端要斷點下載了。這時伺服器還不知道客戶端要下載哪個文件;
要實現FTP的斷點續傳,FTP伺服器必須支持REST指令,這條指令在FTP協議文本RFC959中就已經定義了,不過它不是FTP伺服器必須支持的指令。一般,你可以在下載前使用REST 100命令進行實驗,如果伺服器正常執行了這條命令,說明該伺服器支持FTP斷點續傳。REST後面跟的數表示下載文件的起始位置,而REST 0表示從文件最開始處下載。REST命令本身並不執行下載功能,你仍需要使用RETR命令執行下載工作。
2、向伺服器發送「RETR + 文件名」命令,通知伺服器要下載的文件名,這時伺服器開始定位文件指針讀文件並發送數據。
3、客戶端定位本地文件指針(文件末尾);
4、兩端的准備工作都做完了以後,客戶端創建socket,以被動或非被動方式建立數據通道,循環調用recv接收數據並追加入本地文件;
二、上傳:
1、獲取伺服器上和本地要上傳文件的同名文件大小;
2、向伺服器發送「APPE + 文件名」,通知伺服器,接下來從數據通道發送給你的數據要附加到這個文件末尾。
3、定位本地文件指針(和FTP上文件大小相同的位置)
4、從文件指針處讀數據並發送。
代碼里將斷點上傳和斷點下載放到同一個函數(MoveFile)里,通過get參數說明是上傳還是下載。
『貳』 FTP上傳時經常中斷,怎麼辦
原因:ftp上傳經常中斷
分析:本地網路+查看伺服器運行狀態+服務端網路+伺服器端FTP服務+檢查FTP服務端設置+上傳的數據文件數量+日誌
解決辦法:
1、檢查本地網路是否有抖動或者斷網從而導致本地FTP客戶端軟體連接到伺服器之間有問題。
2、查看需要伺服器狀態是否正常,是否宕機或者有其他問題導致的中斷。
3、查看伺服器端網路是否有抖動或者斷網從而導致FTP服務端與FTP客戶端無法正常連接。
4、檢查伺服器端FTP服務是否正常運行。
5、查看FTP服務端配置中的連接時間設置。
6、如果上傳文件數量比較大,建議您將文件打成壓縮包的方式以二進制上傳。
7、分析FTP服務日至,查到問題根源。
(2)ftp斷點上傳測試擴展閱讀:
開發任何基於 FTP 的客戶端軟體都必須遵循 FTP 的工作原理,FTP 的獨特的優勢同時也是與其它客戶伺服器程序最大的不同點就在於它在兩台通信的主機之間使用了兩條 TCP 連接,一條是數據連接,用於數據傳送;
另一條是控制連接,用於傳送控制信息(命令和響應),這種將命令和數據分開傳送的思想大大提高了 FTP 的效率,而其它客戶伺服器應用程序一般只有一條 TCP 連接。圖 1 給出了 FTP 的基本模型。
客戶有三個構件:用戶介面、客戶控制進程和客戶數據傳送進程。伺服器有兩個構件:伺服器控制進程和伺服器數據傳送進程。在整個交互的 FTP 會話中,控制連接始終是處於連接狀態的,數據連接則在每一次文件傳送時先打開後關閉。
『叄』 什麼是FTP斷點續傳
有時用戶通過FTP下傳文件需要歷時數小時,萬一線路中斷,不具備FTP斷點續傳的FTP伺服器就只能從頭重傳;中國萬網「虛擬主機」上的FTP伺服器具有FTP斷點續傳能力,允許用戶從上傳斷線的地方繼續傳動,這樣大大減少了用戶的煩惱。
『肆』 ftp斷點上傳出現out空指針錯誤
兄弟解決問題了么?我也遇到同樣的問題了,就告知
『伍』 什麼是FTP斷點續傳
有時用戶通過FTP下傳文件需要歷時數小時,萬一線路中斷,不具備FTP斷點續傳的FTP伺服器就只能從頭重傳;中國萬網「虛擬主機」上的FTP伺服器具有FTP斷點續傳能力,允許用戶從上傳斷線的地方繼續傳動,這樣大大減少了用戶的煩惱。
『陸』 關於FTP斷點續傳原理 解釋
由於FTP是順序接收文件的,所以,只要計算已接收的數據大小,就可以知道斷點在文件的偏移量,續傳時,客戶端將已接收的數據量傳遞給伺服器,伺服器使用這個做為偏移量繼續讀取文件,將剩餘的數據發送至客戶端,客戶端僅需將接收到的數據追加至原文件尾部即可.
這樣的一個過程即可實現斷點續傳.
另外有一些客戶端為了閉免錯誤(因為掉線經常是由於錯誤引起的),會少發送實際接收的數據量,比如原1M的文件,已接收512KB,客戶端可能會返回給伺服器500KB,這樣伺服器就會從500KB處開始返回數據,客戶端則從500KB處開始覆蓋已有的12KB,以避免由於錯誤斷開時造成的數據錯誤.好像說多了.
『柒』 ftp裡面如何設置斷點續傳
ftp沒這功能。。。
建議用lftp。
『捌』 怎麼用libcurl實現ftp斷點續傳
這個需要FTP server支持append,我之前用它的命令行測試過的,libcurl可以實現斷點續傳。