資源描述:
《ftp客戶端的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、FTP客戶端的設(shè)計(jì)與實(shí)現(xiàn)摘要:FTP(FileTransferProtocol)即文件傳輸協(xié)議是TCP/IP協(xié)議族中的一個(gè)應(yīng)用層協(xié)議。FTP客戶端利用TCP的可靠傳輸服務(wù),減少了不同文件系統(tǒng)間的不兼容性,實(shí)現(xiàn)了文件的傳送功能;而且它提供了直觀的文件傳輸操作方式,用戶只需要使用鼠標(biāo)拖動(dòng)選擇就可以完成相關(guān)操作。文章主要介紹了FTP的相關(guān)知識(shí)、VisualBasic各種控件以及WindowsAPI函數(shù)的調(diào)用等內(nèi)容。在此基礎(chǔ)上文章最后介紹了如何使用VB完成FTP客戶端應(yīng)用程序的開發(fā)。關(guān)鍵詞:VB;FTP;
2、WindowsAPI0引言FTP(FileTransferProtocol)協(xié)議即文件傳輸協(xié)議是TCP/IP體系結(jié)構(gòu)中的一個(gè)重要協(xié)議,專門用于局域網(wǎng)或Internet中服務(wù)器和客戶端之間進(jìn)行文件傳輸。FTP協(xié)議利用TCP的可靠傳輸服務(wù),減少了不同文件系統(tǒng)間的不兼容,實(shí)現(xiàn)了文件的傳送功能。FTP極大的豐富了我們的網(wǎng)絡(luò)生活,成為互聯(lián)網(wǎng)上不可缺少的服務(wù)方式之一[1]。1設(shè)計(jì)內(nèi)容FTP使用客戶/服務(wù)器方式,本課題就是設(shè)計(jì)一個(gè)FTP客戶端程序,其具有以下基本功能:能完成FTP鏈接的打開和關(guān)閉;能實(shí)現(xiàn)本地和遠(yuǎn)
3、程目錄的瀏覽;能執(zhí)行文件的上傳和下載等有關(guān)操作。2開發(fā)工具簡介2.1VisualBasic簡介Basic發(fā)展到今天已經(jīng)有很多版本,如GW-Basic、QBasic、VisualBasic等等。其中VisualBasic是最容易學(xué)習(xí)與應(yīng)用的程序語言之一,而且其功能也非常強(qiáng)大。VisualBasic6.0自帶的一些功能控件可以幫助我們實(shí)現(xiàn)網(wǎng)絡(luò)通信的功能,是我們網(wǎng)絡(luò)編程中的一個(gè)重要的編程工具。2.2WindowsAPI函數(shù)介紹Win32API也就是MicrosoftWindows32位平臺(tái)的應(yīng)用程序編程
4、接口。第10頁(共11頁)WindowsAPI可以提供形形色色的服務(wù),凡是在Windows操作系統(tǒng)環(huán)境下開發(fā)的應(yīng)用程序,都可以調(diào)用WindowsAPI。2.3InternetTransfer控件介紹InternetTransfer控件是微軟為方便使用者設(shè)計(jì)Internet應(yīng)用程序所提供的一種控件。它提供兩種Internetprotocol:HTTP及FTP。我們在使用時(shí),必須先設(shè)置好它的存取方式。存取方式分為直接連接或通過proxy來連接Internet網(wǎng)絡(luò)兩種。當(dāng)我們設(shè)置好相關(guān)參數(shù)之后,Inte
5、rnetTransfer控件提供兩個(gè)method(OpenURL及Execute)讓我們執(zhí)行網(wǎng)絡(luò)相關(guān)操作,我們可以用這兩個(gè)命令來執(zhí)行一些Internetcommand。2.4WindowsSocket控件Socket由UNIX操作系統(tǒng)逐步移植到Windows,WindowsSocket規(guī)范于90年代初,依次有1.0、1.1、2.0和3.0。WindowsSocket規(guī)范定義并記錄了如何使用API;Socket是網(wǎng)絡(luò)通信的基本操作單元,目前Windows支持兩種套接口:流套接口和數(shù)據(jù)報(bào)套接口。TCP
6、/IP中的TCP協(xié)議使用的是流套接口,提供了面向連接的、無差錯(cuò)的、發(fā)送先后順序一致、包長度不限和非重復(fù)的網(wǎng)絡(luò)信息包的傳輸。TCP/IP中的UDP則使用數(shù)據(jù)報(bào)套接口,該接口提供雙向的、有序的、無重復(fù)并有記錄邊界的數(shù)據(jù)報(bào)服務(wù)。2.5FTP基礎(chǔ)理論知識(shí)FTP是TCP/IP的一種具體應(yīng)用,它工作在OSI模型的第七層,TCP模型的第四層,即應(yīng)用層,同時(shí)在傳輸層使用TCP,所以FTP客戶在和服務(wù)器建立連接前就要經(jīng)過一個(gè)被稱作"三次握手"的過程。其連接是可靠的,傳輸是面向連接的,所以能為數(shù)據(jù)傳輸提供可靠的保證。
7、使用FTP時(shí)必須首先登錄,在遠(yuǎn)程主機(jī)上獲得相應(yīng)的權(quán)限以后,方可上傳或下載文件。但其違背了Internet的開放性,為此系統(tǒng)管理員建立了一個(gè)特殊的用戶ID,名為anonymous,Internet上的任何人在任何地方都可使用該用戶ID。習(xí)慣上,人們用自己的E-mail地址作為口令。2.6FTP工作原理FTP協(xié)議中,控制連接均由客戶端發(fā)起,而數(shù)據(jù)連接有兩種工作方式:PORT方式和PASV方式。下面以PORT方式為例,如圖1所示:①FTP服務(wù)器運(yùn)行FTP守護(hù)進(jìn)程,等待用戶的FTP請求。②用戶運(yùn)行FTP命
8、令,請求FTP服務(wù)器為其服務(wù)?第10頁(共11頁)③FTP守護(hù)進(jìn)程收到用戶的FTP請求后,派生出FTP子進(jìn)程與用戶進(jìn)程交互,建立文件傳輸控制連接,使用TCP端口21。④用戶輸入FTP子命令,服務(wù)器接收子命令,如命令正確,雙方各派生一個(gè)數(shù)據(jù)傳輸進(jìn)程FTP-DATA,建立數(shù)據(jù)連接,使用TCP端口20進(jìn)行數(shù)據(jù)傳輸。⑤本次子命令請求的數(shù)據(jù)傳輸完畢,拆除數(shù)據(jù)連接,結(jié)束FTP-DATA進(jìn)程。⑥用戶繼續(xù)輸入FTP子命令,重復(fù)④、⑤的過程,直至用戶輸入quit命令,雙方拆除控制連接,結(jié)束文件傳輸,