資源描述:
《【精品】VC中ftp協(xié)議實現多線程斷點續(xù)傳.doc》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、ftp下載的好處我在這里就不多說了,許多工程會把ftp下載作為一個重要的功能來實現。微軟提供的Winlnet類可以利用下面這些函數:InternetOpen;InternetConnect;GetCurrentDirectory;SetCurrentDirectory;FtpGetFile;很容易實現ftp的下載,網上關于這方面的文章也很多。但是要實現ftp的多線穆下載,利用這些函數就顯得有些牽強了。用socket根據ftp協(xié)議來開發(fā)將會變的十分靈活。下面我就逐步的講解整個開發(fā)的過程:開發(fā)環(huán)境BCB(
2、紐.件模式),VC環(huán)境下請自行稍作改動??戳诉@篇文章后對于BCB開發(fā)人員來說,不僅可以對FlashGet等軟件的開發(fā)原理有一定的了解,特別是在開發(fā)紐件方面也有很大的指導作用,請耐心的將它看完。很簡單??!首先介紹一下部分ftp協(xié)議:I/-lII用戶
3、丨II接口
4、<一->
5、用戶I
6、一?一/I
7、/
8、FTP命令
9、/V
10、II服務器K>1User
11、
12、IIPIIIFTP響應
13、
14、PI
15、
16、11——/1
17、————/
18、IIIIIII/~V
19、數據
20、/V
21、1文件
22、<—>1服務器
23、《一—>1用戶1<—>1文件11系
24、統(tǒng)丨IIDTP
25、
26、連接IIDTPII1系統(tǒng)I
27、——/IIV服務器FTP用戶FTP圖一FTP服務示意圖用八FTP和服務器FTP之間要傳送文件,需要有兩個連接:命令通道和數據連接,從名字上就可以看出命令通道是傳送命令的,數據通道是用于傳送文件。服務器與服務器之間的數據傳送在此就不多作解釋。主要用到的命令為:USER,PASS,TYPE,SIZE,REST,CWD,PWD,RETR,PASV,PORT,QUIT;USER:參數是標記用戶的Telnet串。用八標記是訪問服務器必須的,此命令通簾是控制連接后第
28、一個發(fā)出的命令,有些主機述會要求口令和帳戶。服務器可以在任何時間接收新的USER命令以改變訪問控制和(或)帳戶信息。這可以重新開始登錄過程,所以傳輸參數不變,在進行中的文件傳輸在過去的訪問控制參數下完成。PASS:參數是標記用八口令的Telnet串。此命令緊跟USER命令,在某些站點它是完成訪問控制不可缺少的一步。因此口令是個重要的東西,因此不能顯示出來,服務器方沒有辦法隱藏口令,所以這一任務得山用戶FTP進程完成。TYPE:參數指定表示類型。有些類型需要第二個參數,第一個參數山單個Telnet字符定
29、義,第二個參數是十進制整數指定字節(jié)大小,參數間以vSP>分隔。下面是格式:A-ASCII
30、
31、N-Non-print
32、T-TelnetformateffectorsE-EBCDIC
33、
34、C-CarriageControl(ASA)/I"ImageL〈字節(jié)大小〉-本地字節(jié)大小圖二TYPE參數示意圖默認表示類型是ASCII非打印字符,如果參數未改變,以后只改變了第一個參數,則使用默認值°SIZE:參數從FTP服務器上返冋指定文件的大小。REST:參數域代農服務器耍重新開始的那一點,此命令并不傳送文件,而是略
35、過指定點后的數據,此命令后應該跟英它要求文件傳輸的FTP命令。CWD:此命令使用戶可以在不同的目錄或數據集下工作而不用改變它的登錄或帳戶信息。傳輸參數也不變。參數一般是目錄名或與系統(tǒng)相關的文件集合。PWD:改變當詢的工作目錄。RETR:開始傳送指定的文件°(從REST參數指定的偏移量開始傳送)PASV:此命令要求服務器DTP在指定的數據端口偵聽,進入被動接收請求的狀態(tài),參數是主機和端口地址。PORT:參數是要使用的數據連接端口,通常情況下對此不需要命令響應。如果使用此命令時,要發(fā)送32位的IP地址和1
36、6位的TCP端口號。上面的信息以8位為一組,逗號間隔十進制傳輸。QUIT:退出登錄。各個參數的具體用法舉例如下:USERsandyr//用戶名為sandy登錄PASSsandyr//密碼為sandyTYPEIrSIZEsandy.txtr//如果sandy.txt文件存在,則返冋該文件的大小REST100r〃重新指定文件傳送的偏移CWDinfor/r//獲収當前的工作目錄PWDtemp/r//改變當前的工作目錄RETRr//開始傳送文件PASVr/
37、/進入被動模式PORTh1,h2,h3Jh4,p1Jp2r//進入主動模式,hi,h2,h3,h4為ip地址的4個部分。p1,p2是16進制的端口號下面介紹一下各個函數的使用順序和-?些應注意的地方:使用這些命令的前提條件是客戶端和服務器端建立了連接。比如ftp服務器地址:192.16&1.81,端口:210那么利用Winsock的API函數建立socket連接,然后使用USER,PASS登陸FTP服務器.需要下載文件,要確保文件必須在當前工作目錄