發信人: jeffshi2000(pp)
整理人: sle(2001-05-17 11:33:31), 站內信件 第一,最重要的一點,斷點續傳需要伺服器的支援,這個是必要條件。
傳統的ftp server是不支援斷點續傳的,因為它不支援rest指令,傳統的ftp指令(我是指伺服器端指令)並不包括rest指令。
第二,客戶端要知道使用rest等一系列指令來作斷點續傳。
看看斷點續傳的詳細過程(ftp server):
首先客戶端使用rest指令來告訴ftp server它需要從檔案的某個點開始傳,接著用stor或者retr命令開始傳檔案,大概的命令的流程如下:
type i
200 type set to i.
pasv
227 entering passive mode (204,48,18,69,98,250)
rest 187392
350 restarting at 187392. send store or retrieve to initiate transfer.
retr /pub/audio/pci/maestro-3/win2k/1056.zip
150 opening binary mode data connection for /pub/audio/pci/maestro-3/win2k/1056.zip (936098 bytes).
首先使用type命令告訴ftp server使用binary模式傳送檔案;
然後使用pasv命令告訴ftp server使用被動開啟模式來傳送檔案;
接著使用rest 187392指令告訴ftp server要從檔案的187392位元組開始傳送;
最後使用retr指令來傳送檔案。
從上面可以看出,這個ftp server支援rest指令,有的ftp server(特別的老的)是不支援這個指令的,這時即使ftp client支援斷點續傳也一點用都沒有!
支援斷點的ftp server:serv-u ftp,還有一系列的新出現的ftp server;
不支援斷點的:iis4以前版本所帶的都不行,iis5 有,不家可以測試一下,登入進ftp server,然後輸入rest 1000命令,看伺服器是否認識,認識就是支援斷點。
上面說的是ftp server的斷點,http
乙個實現FTP斷點續傳的類
本文建立在你對socket 知識有一點點的基礎之上 有一點點就足夠了 ftp客戶端實現要建立兩個通道,乙個控制命令通道,讓ftp伺服器知道客戶端要幹什麼,乙個資料傳輸通道。所謂的兩個通道只不過是兩個呼叫了connect函式的連線,只是控制命令通道專門用來傳輸一些字串命令資訊,而資料通道則是用來傳輸檔...
乙個實現FTP斷點續傳的類
本文建立在你對 socket 知識有一點點的基礎之上 有一點點就足夠了 ftp客戶端實現要建立兩個通道,乙個控制命令通道,讓 ftp伺服器知道客戶端要幹什麼,乙個資料傳輸通道。所謂的兩個通道只不過是兩個呼叫了 connect 函式的連線,只是控制命令通道專門用來傳輸一些字串命令資訊,而資料通道則是用...
乙個實現FTP斷點續傳的類
ftp客戶端實現要建立兩個通道,乙個控制命令通道,讓 ftp伺服器知道客戶端要幹什麼,乙個資料傳輸通道。所謂的兩個通道只不過是兩個呼叫了 connect 函式的連線,只是控制命令通道專門用來傳輸一些字串命令資訊,而資料通道則是用來傳輸檔案。控制命令通道一定是由客戶端向伺服器的連線 預設的埠是 21,...