第07章 FTP應(yīng)用編程_第1頁(yè)
第07章 FTP應(yīng)用編程_第2頁(yè)
第07章 FTP應(yīng)用編程_第3頁(yè)
第07章 FTP應(yīng)用編程_第4頁(yè)
第07章 FTP應(yīng)用編程_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章FTP應(yīng)用編程7.1FTP概述7.2FTP規(guī)范7.3FTP編程相關(guān)類(lèi)7.4FTP編程舉例7.1FTP概述FTP(FileTransferProtocol,文件傳輸協(xié)議)是TCP/IP協(xié)議組中的協(xié)議之一,是Internet傳遞文件最主要的方法。FTP的主要功能如下:1.提供文件的共享,包括程序文件和數(shù)據(jù)文件;2.支持間接使用遠(yuǎn)程計(jì)算機(jī);3.使用戶(hù)不因各類(lèi)主機(jī)文件存儲(chǔ)器系統(tǒng)的差異而受影響;4.使用TCP提供可靠且有效的傳輸。

7.1FTP概述(續(xù))FTP應(yīng)用軟件舉例服務(wù)器舉例:(1)IIS提供的FTP服務(wù)器

適合于用戶(hù)數(shù)不太多(一般10個(gè)左右),功能相對(duì)簡(jiǎn)單的場(chǎng)合;(2)Serv-U

目前流行的FTP服務(wù)器軟件,功能強(qiáng)大;(3)其他FTP服務(wù)器軟件,例如SecureFTPServer等7.1FTP概述(續(xù))客戶(hù)端舉例:(1)各類(lèi)瀏覽器,比如IE、FireFox、Chrome等;

(用法:ftp://......)(2)

Windows自帶“ftp”工具(命令行方式)(3)各類(lèi)下載軟件,常用的有:CuteFTPFlashFXP迅雷FlashGet電驢BT軟件7.1.2FTP的工作原理通過(guò)FTP傳輸文件,雙方至少需要建立兩個(gè)TCP連接一個(gè)稱(chēng)為控制連接,用于傳輸FTP命令;一個(gè)稱(chēng)為數(shù)據(jù)連接,用于傳輸文件數(shù)據(jù)。建立控制連接后,用戶(hù)通過(guò)客戶(hù)機(jī)進(jìn)程向服務(wù)器進(jìn)程發(fā)送命令,服務(wù)器執(zhí)行命令,然后將執(zhí)行結(jié)果返回到客戶(hù)端。7.1.1FTP的工作原理7.1.1FTP的工作原理以下載文件為例說(shuō)明其工作原理7.1.1FTP的工作原理一般情況下,使用FTP傳輸文件時(shí),客戶(hù)端必須首先登錄服務(wù)器,獲得相應(yīng)的權(quán)限以后才能上傳或者下載文件。

比如實(shí)驗(yàn)室的FTP登錄時(shí)需要進(jìn)行身份驗(yàn)證有些場(chǎng)合下,服務(wù)器并不要求每個(gè)用戶(hù)都擁有合法的賬號(hào),此時(shí)也就是允許匿名登錄FTP。這些服務(wù)器的目的是向公眾提供文件拷貝服務(wù),匿名FTP是Internet上傳輸分發(fā)軟件的一種基本方法。比如:redhat等公司提供的匿名訪(fǎng)問(wèn)站點(diǎn)

7.1.2FTP的數(shù)據(jù)傳輸方式FTP常用的兩種數(shù)據(jù)傳輸方式:ASCII傳輸方式和二進(jìn)制傳輸方式。1.ASCII傳輸方式

該方式以ASCII編碼方式傳輸數(shù)據(jù);適用于傳輸僅包含英文的命令和參數(shù),或者在不同的平臺(tái)間傳輸英文文本文件的場(chǎng)合。2.二進(jìn)制傳輸方式

該方式以二進(jìn)制形式數(shù)據(jù)傳輸時(shí),可以指定采用哪種編碼傳輸命令或文件數(shù)據(jù)。適用傳輸程序、帶中文的文件的場(chǎng)合。7.1.3文件傳輸模式FTP客戶(hù)端與服務(wù)器建立控制連接后,首先要告訴服務(wù)器采用哪種文件傳輸模式,即與服務(wù)器協(xié)商數(shù)據(jù)連接請(qǐng)求建立的方式。FTP提供兩種文件傳輸模式主動(dòng)模式(Port模式)

服務(wù)器主動(dòng)向客戶(hù)端發(fā)起數(shù)據(jù)連接請(qǐng)求;被動(dòng)模式(PASV模式)

客戶(hù)端向服務(wù)器發(fā)起數(shù)據(jù)連接請(qǐng)求;注意:主動(dòng)和被動(dòng)是從服務(wù)器的角度來(lái)說(shuō)的;7.1.3文件傳輸模式1.主動(dòng)模式(PORT模式)該模式表示服務(wù)器主動(dòng)連接客戶(hù)端,然后傳輸文件。連接建立過(guò)程:FTP客戶(hù)端先用一個(gè)端口N(N>1024)向服務(wù)器的21號(hào)端口發(fā)起控制連接,連接成功后,再發(fā)出PORTN+1命令告訴服務(wù)器自己監(jiān)聽(tīng)的端口號(hào)為N+1。服務(wù)器接收到PORT命令后,用一個(gè)新的數(shù)據(jù)端口(一般是20號(hào)端口)與客戶(hù)端的端口N+1建立連接。服務(wù)器通過(guò)20端口進(jìn)行文件數(shù)據(jù)傳輸,而客戶(hù)端則通過(guò)監(jiān)聽(tīng)N+1端口接收文件數(shù)據(jù)。主動(dòng)模式——控制連接和數(shù)據(jù)連接建立工作步驟:(1)客戶(hù)端的1026命令端口與服務(wù)器的21命令端口發(fā)起控制連接請(qǐng)求;客戶(hù)端發(fā)出PORT1027命令給服務(wù)器,同時(shí)監(jiān)聽(tīng)1027端口;(2)控制連接建立,服務(wù)器回復(fù)“ACK”確認(rèn)消息。(3)服務(wù)器使用20數(shù)據(jù)端口與客戶(hù)端的1027端口發(fā)起數(shù)據(jù)連接請(qǐng)求;(4)客戶(hù)端給服務(wù)器返回“ACK”消息。7.1.3文件傳輸模式主動(dòng)模式的特點(diǎn)FTP的客戶(hù)端只是告訴服務(wù)器自己監(jiān)聽(tīng)的端口,服務(wù)器主動(dòng)與客戶(hù)端監(jiān)聽(tīng)的端口建立數(shù)據(jù)連接;可能存在的問(wèn)題:對(duì)于客戶(hù)端的防火墻來(lái)說(shuō),這是外部系統(tǒng)(服務(wù)器)發(fā)往內(nèi)部系統(tǒng)(客戶(hù)端)的連接;這通常會(huì)被阻塞。也就是說(shuō)外部FTP服務(wù)器無(wú)法使用主動(dòng)模式穿透防火墻主動(dòng)連接客戶(hù)端,就會(huì)造成文件數(shù)據(jù)無(wú)法傳輸;7.1.3文件傳輸模式2.被動(dòng)模式(PASV,被動(dòng)模式)該模式表示服務(wù)器被動(dòng)接受客戶(hù)端連接請(qǐng)求,即控制連接請(qǐng)求和數(shù)據(jù)連接請(qǐng)求都由客戶(hù)端發(fā)起。在此模式下,F(xiàn)TP客戶(hù)端先隨機(jī)開(kāi)啟一個(gè)端口N向服務(wù)器的21號(hào)端口發(fā)起控制連接,然后向服務(wù)器發(fā)送PASV命令,服務(wù)器收到此命令后,會(huì)用一個(gè)新的端口P(P>1024)進(jìn)行監(jiān)聽(tīng),同時(shí)將該端口號(hào)告訴客戶(hù)端,客戶(hù)端收到響應(yīng)命令后,再通過(guò)新的端口N+1連接服務(wù)器的端口P,然后進(jìn)行文件數(shù)據(jù)傳輸。

被動(dòng)模式——控制連接和數(shù)據(jù)連接建立工作步驟:(1)客戶(hù)端使用端口1026與服務(wù)器的21端口發(fā)起控制連接請(qǐng)求,同時(shí)向服務(wù)器發(fā)送PASV命令;(2)服務(wù)器收到命令后,將自己監(jiān)聽(tīng)的端口2024告訴客戶(hù)端。(3)客戶(hù)端使用1027端口與服務(wù)器的2024端口發(fā)起連接請(qǐng)求;(4)連接建立,服務(wù)器回復(fù)確認(rèn)消息;被動(dòng)模式被動(dòng)模式特點(diǎn):控制連接和數(shù)據(jù)連接均是由客戶(hù)端主動(dòng)發(fā)起連接;服務(wù)器與客戶(hù)端進(jìn)行通信時(shí),隨機(jī)選擇端口P(>1024)。可能存在問(wèn)題:如果服務(wù)器安裝防火墻,客戶(hù)端可能無(wú)法與服務(wù)器的端口P建立數(shù)據(jù)連接請(qǐng)求;解決辦法:實(shí)際應(yīng)用中,一般服務(wù)器會(huì)指定一個(gè)端口范圍,允許客戶(hù)端與該范圍內(nèi)的端口建立數(shù)據(jù)連接。7.1.3文件傳輸模式主動(dòng)模式和被動(dòng)模式的異同共同點(diǎn):服務(wù)器均使用21端口進(jìn)行用戶(hù)驗(yàn)證及管理;都有可能因防火墻的問(wèn)題,造成數(shù)據(jù)連接無(wú)法建立;不同點(diǎn):數(shù)據(jù)連接建立方式不同:主動(dòng)模式服務(wù)器主動(dòng)連接,被動(dòng)模式由客戶(hù)端主動(dòng)連接。數(shù)據(jù)傳送的端口不同:主動(dòng)模式的FTP服務(wù)器的數(shù)據(jù)端口固定在20,被動(dòng)模式的FTP服務(wù)器的數(shù)據(jù)端口則在1025-65535之間隨機(jī)產(chǎn)生。7.2FTP規(guī)范7.2.1FTP命令7.2.2FTP響應(yīng)碼7.2.1FTP命令FTP每個(gè)命令都由3到4個(gè)字母組成,后面是該命令的參數(shù),命令與參數(shù)之間用空格隔開(kāi)。每個(gè)命令都以回車(chē)換行結(jié)束。部分命令舉例:

1.訪(fǎng)問(wèn)命令(重點(diǎn)介紹USER、PASS、QUIT)

(1)USER命令 格式:USER<username>

功能:指定登錄的用戶(hù)名,以便服務(wù)器進(jìn)行身份驗(yàn)證。此命令通常是控制連接后第一個(gè)發(fā)出的命令。7.2.1FTP命令(續(xù))(2)PASS命令格式:PASS<password>功能:指定用戶(hù)口令,該命令必須跟在登錄用戶(hù)名命令之后。對(duì)于需要用戶(hù)口令的FTP服務(wù)器,它是完成訪(fǎng)問(wèn)控制不可缺少的一步。(3)QUIT命令格式:QUIT功能:關(guān)閉與服務(wù)器的連接。7.2.1FTP命令(續(xù))其他訪(fǎng)問(wèn)命令:(4)ACCT命令格式:ACCT<account>功能:指定用戶(hù)賬號(hào)。此命令不需要和USER相關(guān),服務(wù)器端可以設(shè)置客戶(hù)端帳號(hào),也可以限制賬戶(hù)訪(fǎng)問(wèn)權(quán)限。(5)REIN命令格式:REIN功能:表示重新初始化用戶(hù)信息。此命令終止當(dāng)前USER的傳輸,同時(shí)終止正在傳輸?shù)臄?shù)據(jù),然后重置所有參數(shù),并打開(kāi)控制連接,以便客戶(hù)端再次發(fā)送USER命令。7.2.1FTP命令(續(xù))2.模式設(shè)置命令(1)PASV命令格式:PASV功能:該命令告訴FTP服務(wù)器,讓FTP服務(wù)器在指定的數(shù)據(jù)端口進(jìn)行監(jiān)聽(tīng),進(jìn)入被動(dòng)接收請(qǐng)求的狀態(tài)。這種方式對(duì)于有代理服務(wù)器的客戶(hù)端更安全,因?yàn)榭蛻?hù)端代理服務(wù)器不必接受傳入的連接。如果未指定任何模式,則FTP服務(wù)器默認(rèn)使用PASV模式。7.2.1FTP命令(續(xù))(2)PORT命令格式:PORT<address>功能:該命令告訴FTP服務(wù)器,客戶(hù)端監(jiān)聽(tīng)的端口號(hào)是address,讓FTP服務(wù)器采用主動(dòng)模式連接客戶(hù)端。程序員可以對(duì)所有FTP服務(wù)器啟用PORT模式,也可以?xún)H對(duì)特定FTP服務(wù)器啟用此模式。但是要注意,如果客戶(hù)端代理服務(wù)器位于防火墻之后,使PORT模式不起作用,則無(wú)法啟用PORT模式,此時(shí)可以嘗試使用PASV模式。

7.2.1FTP命令(續(xù))(3)TYPE命令格式:TYPE<datatype>功能:指定要傳輸?shù)臄?shù)據(jù)類(lèi)型,有ASCII(A)和BINARY(I)兩種類(lèi)型。格式:MODE<mode>功能:指定傳輸模式,S表示流,B表示塊,C表示壓縮。例如:TYPEI//表示傳輸類(lèi)型是Binary

MODES//傳輸模式是流7.2.1FTP命令(續(xù))3.文件管理命令--------------改變目錄相關(guān)的命令---------------CWD命令

格式:CWD<directory>功能:改變工作目錄。此命令使用戶(hù)可以在不同的目錄或數(shù)據(jù)集下工作而不用改變它的登錄或帳戶(hù)信息,傳輸參數(shù)也不變。參數(shù)一般是目錄名或與系統(tǒng)相關(guān)的文件集合。PWD命令:返回當(dāng)前工作目錄

格式:PWDCDUP命令:回到上層目錄。格式:CDUP7.2.1FTP命令(續(xù))--------------目錄管理相關(guān)的命令--------------MKD命令:

格式:MKD<directory>功能:在指定路徑下創(chuàng)建新目錄,參數(shù)為表示特定目錄的字符串。RMD命令:

格式:RMD<directory>功能:刪除指定目錄。參數(shù)為表示特定目錄的字符串。7.2.1FTP命令(續(xù))------------目錄下目錄和文件獲取命令----------LIST命令格式:LIST<name>功能:返回指定路徑下的子目錄及文件列表,省略<路徑>時(shí),返回當(dāng)前路徑下的文件列表。如果路徑名指定一個(gè)文件,服務(wù)器返回文件的當(dāng)前信息,參數(shù)為空表示用戶(hù)當(dāng)前的工作目錄或默認(rèn)目錄。NLST命令格式:NLST<directory>功能:返回指定路徑下的目錄列表,省略<路徑>時(shí),返回當(dāng)前目錄。7.2.1FTP命令(續(xù))------------文件操作相關(guān)的命令----------RNFR命令(重命名命令)格式:RNFR<oldpath>功能:重新命名文件,該命令的下一條命令應(yīng)該用RNTO指定新的文件名。RNTO命令格式:RNTO<newpath>功能:該命令和RNFR命令共同完成對(duì)文件的重命名。DELE命令格式:DELE<filename>功能:刪除指定路徑下的文件。7.2.1FTP命令(續(xù))4.文件傳輸命令:包括RETR命令和STOR命令。(1)RETR命令格式:RETR<filename>功能:請(qǐng)求服務(wù)器將指定路徑內(nèi)的文件復(fù)制到客戶(hù)端,也即下載指定的文件。(2)STOR命令格式:STOR<filename>功能:上傳一個(gè)指定的文件,并將其存儲(chǔ)在指定的位置。如果文件已存在,原文件將被覆蓋。如果文件不存在,則創(chuàng)建新文件。7.2.2FTP響應(yīng)碼客戶(hù)端發(fā)送FTP命令后,服務(wù)器返回約定的FTP響應(yīng)碼。響應(yīng)碼用三位數(shù)字編碼表示:第一個(gè)數(shù)字給出有關(guān)命令狀態(tài)的一般性指示;第二個(gè)數(shù)字指示所發(fā)生的常規(guī)錯(cuò)誤類(lèi)型;第三個(gè)數(shù)字提供了更為詳細(xì)的信息。在實(shí)際使用時(shí),只需要知道這三位組合在一起表示什么意思就可以了。部分響應(yīng)碼及其意義見(jiàn)表7-1。

7.2.2FTP響應(yīng)碼FTP響應(yīng)碼舉例:控制連接請(qǐng)求:(1)服務(wù)器準(zhǔn)備就緒則返回220;(2)如果服務(wù)器接收到命令但還需要時(shí)間準(zhǔn)備則返回110;(3)其他情況下返回420。登錄如果客戶(hù)端接收到服務(wù)器端返回220響應(yīng)碼,便可以相繼發(fā)送USER、PASS和ACCT命令登錄。FTP客戶(hù)登錄以及響應(yīng)碼舉例FTP客戶(hù)登錄以及響應(yīng)碼舉例使用CuteFtp與FTP服務(wù)器建立連接的驗(yàn)證信息:狀態(tài):>[2012-5-1520:49:39]正在連接到FTP服務(wù)器...

8:21(ip=8)...狀態(tài):>[2012-5-1520:49:39]已連接套接字。正在等待歡迎信息...

[2012-5-1520:49:40]220FTPServerv1.0狀態(tài):>[2012-5-1520:49:40]已連接。正在驗(yàn)證身份...命令:>[2012-5-1520:49:40]USERmytestName [2012-5-1520:49:40]331USERcommandOK,passwordrequired.命令:>[2012-5-1520:49:40]PASS***** [2012-5-1520:49:40]230Userloggedinsuccess狀態(tài):>[2012-5-1520:49:40]登錄成功。文件下載時(shí)命令與狀態(tài)碼舉例文件下載時(shí)命令與狀態(tài)碼舉例命令:> [2012-5-178:53:25]TYPEI [2012-5-178:53:25]200TypesettoI.命令:> [2012-5-178:53:25]PASV [2012-5-178:53:25]227EnteringPassiveMode(192,168,0,166,13,230)命令:> [2012-5-178:53:25]RETRC#中加載和卸載DLL.doc狀態(tài):>[2012-5-178:53:25]正在連接FTP數(shù)據(jù)套接字...66:3558...

[2012-5-178:53:25]150OpeningBINARYmodedataconnectionforC#中加載和卸載DLL.doc(27136Bytes).

[2012-5-178:53:25]226Transfercomplete.27,136bytes(3,726compressedto13.73%)transferred.117.38actualKB/sec,854.84effectiveKB/sec.狀態(tài):>[2012-5-178:53:25]文件傳輸完畢。上節(jié)內(nèi)容回顧FTP的工作原理雙TCP連接:控制連接和數(shù)據(jù)連接FTP的數(shù)據(jù)傳輸模式ASCII傳輸方式和二進(jìn)制傳輸方式FTP的文件傳輸模式(數(shù)據(jù)連接的建立方式)主動(dòng)模式(PORT)被動(dòng)模式(PASV)FTP的命令與響應(yīng)碼命令(3-4個(gè)字母組成,空格隔開(kāi),回車(chē)換行結(jié)束)響應(yīng)碼(3位數(shù)字表示)7.3FTP編程相關(guān)類(lèi)7.3.1FtpWebRequest類(lèi)7.3.2FtpWebResponse類(lèi)7.3.3NetworkCredential類(lèi)7.3FTP編程相關(guān)類(lèi)FTP應(yīng)用程序一般編寫(xiě)方法:服務(wù)端實(shí)現(xiàn)方式:根據(jù)FTP的工作原理和命令,使用TCP協(xié)議實(shí)現(xiàn)FTP服務(wù)器(WinForm版)的功能;TCPListener、Socket...客戶(hù)端實(shí)現(xiàn)方式:利用.NETFramework提供的封裝類(lèi),簡(jiǎn)化FTP客戶(hù)端程序的編寫(xiě);TCPClient、Socket...FTP的封裝類(lèi):FTPWebRequest、FtpWebResponse7.3.1FtpWebRequest類(lèi).NETFramework提供對(duì)FTP提供支持的類(lèi)FtpWebRequest類(lèi)用于實(shí)現(xiàn)文件傳輸協(xié)議(FTP)客戶(hù)端功能,例如上傳文件、下載文件等。FtpWebResponse類(lèi)用于封裝FTP服務(wù)器對(duì)請(qǐng)求的響應(yīng)。例如操作的狀態(tài)及從服務(wù)器下載的數(shù)據(jù)等。7.3.1FtpWebRequest類(lèi)1.WebRequest類(lèi)和WebResponse類(lèi)請(qǐng)求/響應(yīng)模型的抽象基類(lèi)。FtpWebRequest和FtpWebResponse從這兩個(gè)類(lèi)派生。其他協(xié)議封裝類(lèi):HTTP、File等均從此派生2.FtpWebRequest類(lèi)

類(lèi)對(duì)象的構(gòu)造:先調(diào)用FtpWebRequest的Create方法,再經(jīng)過(guò)強(qiáng)制轉(zhuǎn)換得到FtpWebRequest的實(shí)例。該方法有兩種重載形式:FtpWebRequest.Create(StringuriString)FtpWebRequest.Create(Uriuri)7.3.1FtpWebRequest類(lèi)FtpWebRequest類(lèi)對(duì)象構(gòu)造舉例例如://使用字符串FtpWebRequestreqFTP=(FtpWebRequest)FtpWebRequest.Create("ftp://myFTPServer/myFile");//使用Uri構(gòu)造UrisiteUri=newUri("ftp://myFTPServer/myFile");FtpWebRequestreqFTP=(FtpWebRequest)FtpWebRequest.Create(siteUri);注意:uri可以相對(duì)也可以是絕對(duì)7.3.1FtpWebRequest類(lèi)1.FtpWebRequest類(lèi)的常用屬性Credentials屬性:獲取或設(shè)置與FTP服務(wù)器通信的憑據(jù)(NetWorkCredential類(lèi)型)NetworkCredential類(lèi)用于為基于密碼的身份驗(yàn)證方案提供憑據(jù)。該類(lèi)可用于多種協(xié)議。在FTP中,用于提供FTP用戶(hù)名和密碼。如果FTP服務(wù)器不允許匿名訪(fǎng)問(wèn),客戶(hù)端必須向服務(wù)器提供用戶(hù)名和密碼。用法舉例:NetworkCredential

networkCredential=newNetworkCredential(username,password);

request.Credentials=networkCredential;7.3.1FtpWebRequest類(lèi)1.FtpWebRequest類(lèi)的常用屬性EnableSsl屬性:指定是否使用SSL(安全套接字層)連接KeepAlive屬性:指示請(qǐng)求完成后是否保持連接Method屬性:獲取或設(shè)置發(fā)往FTP服務(wù)器的命令,通過(guò)WebRequestMethods.Ftp枚舉指定;UseBinary屬性:獲取或指定是否采用二進(jìn)制傳輸7.3.1FtpWebRequest類(lèi)2.FtpWebRequest類(lèi)的常用方法Create方法初始化新的WebRequest實(shí)例GetResponse方法返回FTP服務(wù)器響應(yīng),返回值為WebResponse對(duì)象GetRequestStream方法檢索用于向FTP服務(wù)器上載數(shù)據(jù)的流;實(shí)現(xiàn)文件上傳時(shí)在獲取響應(yīng)前使用此方法;7.3.1FtpWebRequest類(lèi)FtpWebRequest類(lèi)的使用步驟1.創(chuàng)建FtpWebRequest對(duì)象2.設(shè)置FtpWebRequest對(duì)象的相關(guān)屬性Credentials屬性(憑據(jù))KeepAlive屬性(是否保持連接)UseBinary(是否使用二進(jìn)制)Method(操作命令)3.根據(jù)設(shè)置的操作命令,獲得服務(wù)器的響應(yīng),決定下一步執(zhí)行的動(dòng)作。4.關(guān)閉對(duì)象FtpWebRequest類(lèi)使用舉例//第一步:創(chuàng)建對(duì)象FtpWebRequestrequest=(FtpWebRequest)FtpWebRequest.Create(ftpUriString);//第二步:設(shè)置對(duì)象的屬性NetworkCredentialnetworkCredential=newNetworkCredential(UserName,Password);request.Credentials=networkCredential;request.KeepAlive=true;request.UseBinary=true;request.Method=WebRequestMethods.Ftp.ListDirectoryDetails;//第三步:獲得服務(wù)器的響應(yīng),確定下一步的動(dòng)作FtpWebResponseresponse=(FtpWebResponse)request.GetResponse();…request.Close();//第四步:關(guān)閉對(duì)象7.3.2FtpWebResponse類(lèi)FtpWebResponse類(lèi)

封裝文件傳輸協(xié)議(FTP)服務(wù)器對(duì)請(qǐng)求的響應(yīng)。1.FtpWebResponse類(lèi)對(duì)象構(gòu)造沒(méi)有構(gòu)造函數(shù),只能通過(guò)調(diào)用FtpWebRequest對(duì)象的GetResponse方法獲??;返回對(duì)象必須強(qiáng)制轉(zhuǎn)換為FtpWebResponse類(lèi)型。例如:FtpWebRequestrequest=(FtpWebRequest)FtpWebRequest.Create(ftpUriString);FtpWebResponseresponse=(FtpWebResponse)request.GetResponse();7.3.2FtpWebResponse類(lèi)2.FtpWebResponse類(lèi)的常用屬性和方法StatusCode屬性獲取從FTP服務(wù)器上發(fā)回的最新?tīng)顟B(tài)代碼StatusDescription屬性獲取從FTP服務(wù)器上發(fā)回的狀態(tài)代碼文本信息Close方法關(guān)閉響應(yīng)流GetResponseStream方法檢索包含從FTP服務(wù)器上發(fā)送的響應(yīng)數(shù)據(jù)的流;實(shí)現(xiàn)下載功能時(shí)使用此此方法;FtpWebResponse對(duì)象使用舉例FtpWebResponse類(lèi)的使用步驟1.創(chuàng)建FtpWebResponse對(duì)象

FtpWebRequestrequest=(FtpWebRequest)FtpWebRequest.Create(ftpUriString);FtpWebResponseresponse=(FtpWebResponse)request.GetResponse();2.根據(jù)request對(duì)象的命令類(lèi)型,確定下一步的動(dòng)作StreamresponseStream=response.GetResponseStream();…3.關(guān)閉對(duì)象

response.Close();7.4FTP編程舉例7.4.1服務(wù)器端開(kāi)發(fā)7.4.2客戶(hù)端開(kāi)發(fā)7.4FTP編程舉例服務(wù)端運(yùn)行界面客戶(hù)端運(yùn)行界面7.4.2客戶(hù)端開(kāi)發(fā)客戶(hù)端程序只要符合FTP規(guī)范,并擁有合法的用戶(hù)名和密碼,就可以與多個(gè)規(guī)范的FTP服務(wù)器通信。.NET提供的FtpWebRequest類(lèi)中,有一個(gè)Method屬性,可以利用該屬性獲取或設(shè)置要發(fā)送到FTP服務(wù)器的命令(默認(rèn)值為DownloadFile)。FTP命令用WebRequestMethods.Ftp類(lèi)表現(xiàn)出來(lái),目前提供的命令包含了常用的FTP常用方法。本節(jié)例子演示了FTP應(yīng)用的常用功能(見(jiàn)下頁(yè)設(shè)計(jì)界面)

7.4.2客戶(hù)端開(kāi)發(fā)—設(shè)計(jì)界面圖7-5單擊建立連接后運(yùn)行界面圖7-3FTP客戶(hù)端設(shè)計(jì)界面7.4.2客戶(hù)端開(kāi)發(fā)客戶(hù)端實(shí)現(xiàn)要點(diǎn)1.創(chuàng)建FtpWebRequest對(duì)象

CreateFtpWebRe

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論