再轉乙個斷點續傳的帖子

2021-05-22 04:34:37 字數 1232 閱讀 4802

發信人: 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,...