FTP服務(wù)器的構(gòu)建與應(yīng)用畢業(yè)論文_第1頁
FTP服務(wù)器的構(gòu)建與應(yīng)用畢業(yè)論文_第2頁
FTP服務(wù)器的構(gòu)建與應(yīng)用畢業(yè)論文_第3頁
FTP服務(wù)器的構(gòu)建與應(yīng)用畢業(yè)論文_第4頁
FTP服務(wù)器的構(gòu)建與應(yīng)用畢業(yè)論文_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

南京郵電大學 指導單位通信與信息工程學院通信與信息工程學院畢業(yè)設(shè)計(論文)原創(chuàng)性聲明本人鄭重聲明:所提交的畢業(yè)設(shè)計(論文),是本人在導師指導下,獨立進行研究工作所取得的成果。除文中已注明引用的內(nèi)容外,本畢業(yè)設(shè)計(論文)不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對本研究做出過重要貢獻包括用戶的登錄(實名或匿名),文件的上傳、下載、刪除、目錄查詢等,并給出相應(yīng)的提示。通過該程序的開發(fā),基本上實現(xiàn)了一個FTP服務(wù)器所應(yīng)該具有的功求分析,軟件設(shè)計到軟件功能實現(xiàn),都始終遵循標準的思想和方法。本文中在描ThisprocedureisaFTP(FileTransferProtocol)serversystem,carryingoutmostfunctionsthatFTPservershouldhave,includingtheloggingofthecustomer(realnameoranonymous),documentofupload,download,delete,thecataloguechoice…etc.,andhinthelpsforeveryfunction.Passthedevelopmentofthatprocedure,carriedoutthefunctionthataFTPservershouldhavebasically,canexplainthegeneralorderofFTP,andmatchthenormoftelecomstandards.Thedesignofthissoftware,namelyanalyticalfromtheneed,thesoftwaredesignsthesoftwarefunctiontocarryout,allfollowingthethoughtandthemethodofthesoftwareengineeringalways.Italsoadoptedsomechartsinthetextelucidation,makearticledefinitelyclear,thenhelpwithThisprocedureadoptstheServ-UtobuildserverandadoptsVC++6.0todeveloptheclient.Thedesignstepadoptionfromamethodforgetdown.Keywords:FTP;upload;download;server;client 1 1第二章FTP協(xié)議與原理 3 3 3 6第三章開發(fā)環(huán)境及工具介紹 8 8 9 第四章FTP服務(wù)器的構(gòu)建與應(yīng)用 4.1需解決的問題 4.2功能分析 4.3FTP服務(wù)器的搭建 4.4FTP客戶端的搭建 5.1測試過程 5.2結(jié)果分析 385.3測試出現(xiàn)的問題和不足 39 40 41參考文獻 1南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)1第一章課題概述在眾多網(wǎng)絡(luò)應(yīng)用中,F(xiàn)TP(文件傳輸協(xié)議)有著非常重要的地位。Internet中一個十分重要的資源就是軟件資源,而各種各樣的軟件資源大多數(shù)都放在FTP服務(wù)器中。與大多數(shù)Internet服務(wù)一樣,F(xiàn)TP也是一個客戶機/服務(wù)器系統(tǒng)。用戶通過一個支持FTP協(xié)議的客戶機程序,連接到主機上的FTP服務(wù)器程序。用戶通過客戶機程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶發(fā)出的命令,并將執(zhí)行結(jié)果返回給客戶機。FTP服務(wù)可以根據(jù)服務(wù)對象的不同分為兩類:系統(tǒng)FTP服務(wù)器只允許系統(tǒng)上的合法用戶使用;匿名FTP服務(wù)器(AnonymousFTPServer)允許任何人登錄到FTP服務(wù)器去獲取文件。1.2技術(shù)支持與大多數(shù)Internet服務(wù)一樣,F(xiàn)TP也是一個客戶機/服務(wù)器系統(tǒng)。用戶通過一個支持FTP協(xié)議的客戶機程序,連接到在遠程主機上的FTP服務(wù)器程序。用戶通過客戶機程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機。比如說,用戶發(fā)出一條命令,要求服務(wù)器向用戶傳送某一個文件的一份拷貝,服務(wù)器會響應(yīng)這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。在FTP的使用當中,用戶經(jīng)常遇到兩個概念:”下載”(Download)和”上傳”(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上傳"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。使用FTP時必須首先登錄,在遠程主機上獲得相應(yīng)的權(quán)限以后,方可下載或上傳文件。也就是說,要想同哪一臺計算機傳送文件,就必須具有哪一臺計算機的適當授權(quán)。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機何止千萬,不可能要求每個用戶在每一臺主機上都擁有帳號。匿名FTP就是為解決這個問題而產(chǎn)生的。匿名FTP是這樣一種機制,用戶可通過它連接到遠程主機上,并從其下載文件,而無需成為其注冊用戶。系統(tǒng)管理員建立了一個特殊的用戶ID,名為anonymous,Internet上的任何人在任何地方都可使用該用戶ID。通過FTP程序連接匿名FTP主機的方式同連接普通FTP主機的方式差不多,只是在要求提供用戶標識ID時必須輸入anonymous,該用戶ID的口令可以是任意的字符串。習慣上,用自己的E-mail地址作為口令,使系統(tǒng)維護程序能夠記錄下來誰在存取這些文件。值得注意的是,匿名FTP不適用于所有Internet主機,它只適用于那些南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)2提供了這項服務(wù)的主機。當遠程主機提供匿名FTP服務(wù)時,會指定某些目錄向公眾開放,允許匿名存取。系統(tǒng)中的其余目錄則處于隱匿狀態(tài)。作為一種安全措施,大多數(shù)匿名FTP主機都允許用戶從其下載文件,而不允許用戶向其上傳文件,也就是說,用戶可將匿名FTP主機上的所有文件全部拷貝到自己的機器上,但不能將自己機器上的任何一個文件拷貝至匿名FTP主機上。即使有些匿名FTP主機確實允許用戶上傳文件,用戶也只能將文件上傳至某一指定上傳目錄中。隨后,系統(tǒng)管理員會去檢查這些文件,他會將這些文件移至另一個公共下載目錄中,供其他用戶下載,利用這種方式,遠程主機的用戶得到了保護,避免了有人上傳有問題的文件,如帶病毒的文件。作為一個Internet用戶,可通過FTP在任何兩臺Internet主機之間拷貝文件。但是,實際上大多數(shù)人只有一個Internet帳戶,F(xiàn)TP主要用于下載公共文件,例如共享軟件、各公司技術(shù)支持文件等。Internet上有成千上萬臺匿名FTP主機,這些主機上存放著數(shù)不清的文件,供用戶免費拷貝。實際上,幾乎所有類型的信息,所有類型的計算機程序都可以在Internet上找到。這是Internet吸引我們的重要原因之一。1.3總體設(shè)計我將利用Serv-UFTPServer軟件搭建一個FTP服務(wù)器,使其具有基本的FTP服務(wù)器功能,同時再進行進一步完善FTP服務(wù)器架設(shè),在原有基礎(chǔ)上增加功能,同時我還將利用基于VisualC++的SOCKET編程完成的FTP客戶端的搭建,使之能夠與服務(wù)器進行通信測試、文件互傳。并進一步完善FTP客戶端程序,在原有的基礎(chǔ)上達到課題要求功能南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)3第二章FTP協(xié)議與原理FTP(FileTransferProtocol)是文件傳輸協(xié)議的簡稱。直到1994年,當一樣最廣泛應(yīng)用的Internet客戶程序。它被用于作為訪問Internet主機文件的一個遠程外殼。使用FTP可以連接到一個FTP服務(wù)器,在可用的目錄間游歷,并一個FTP站點可以是公用的,私有的,或者兩者兼有之。使用一個私有的賬號,你可以擁有訪問整個網(wǎng)絡(luò)的目錄結(jié)構(gòu),或者只是特定的區(qū)域權(quán)限。Internet同時也是一個擁有很多允許任何人連接和傳輸文件的FTP服務(wù)器的中心,不管他們有沒有主機上的賬號。這叫做匿名FTP。當你登錄到一個匿名FTP站點時,你通常使用“anonymous”作為你的用戶名,“guest”或你的e-mail地址作為密碼。例如,匿名FTP經(jīng)常用于發(fā)布大量的公用領(lǐng)域或共享軟件。其中一個著名的公用FTP站點是。FTP的主要設(shè)計目的是用于程序之中,不過FTP程序自身已經(jīng)成為任何一個TCP/IP實施的重要部分。當你在Windows3.11、Windows95或WindowsNT中使用Netscape和其它的瀏覽器中,因此你可以使用瀏覽Web的程序同時瀏覽FTP一般來說.用戶聯(lián)網(wǎng)的首要目的就是實現(xiàn)信息共享,文件傳輸是信息共享非常重要的一個內(nèi)容之一。Internet上早期實現(xiàn)傳輸文件,并不是一件容易的事,我們知道Internet是一個非常復雜的計算機環(huán)境,有PC,有工作站,有MAC,有大型機,據(jù)統(tǒng)計連接在Internet上的計算機已有上千萬臺,而這些計算機可能運行不同的操作系統(tǒng),有運行Unix的服務(wù)器,也有運行Dos、Windows的PC機和運行MacOS的蘋果機等等,而各種操作系統(tǒng)之間的文件交流問題,需要建立一個統(tǒng)一的文件傳輸協(xié)議,這就是所謂的FTP?;诓煌牟僮飨到y(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議,這樣用戶就可以把自己的文件傳送給別人,或者從其它的用戶環(huán)境中獲得文件。與大多數(shù)Internet服務(wù)一樣,F(xiàn)TP也是一個客戶機/服務(wù)器系統(tǒng)。用戶通過一個支持FTP協(xié)議的客戶機程序,連接到在遠程主機上的FTP服務(wù)器程序。用戶通過客戶機程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機。比如說,用戶發(fā)出一條命令,要求服務(wù)器向用戶傳送某一個文件的一份拷貝,服務(wù)器會響應(yīng)這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)42.2.1FTP工作原理FTP是TCP/IP的一種具體應(yīng)用,它工作在OSI模型的第七層,TC四層上,即應(yīng)用層,使用TCP傳輸而不是UDP,這樣FTP客戶在和服務(wù)器建立連接前就要經(jīng)過一個被廣為熟知的“三次握手”的過程,它帶來的意義在于客戶與服務(wù)器之間的連接是可靠的,而且是面向連接,為數(shù)據(jù)的傳輸提供了可靠的保證。采用FTP協(xié)議可使Internet用戶高效地從網(wǎng)上的FTP服務(wù)器下載大信息量的數(shù)據(jù)文件,將遠程主機上的文件拷貝到自己的計算機上。以達到資源共享和傳遞信息的目的。由于FTP的使用使得Internet上出現(xiàn)大量為用戶提供的下載服務(wù)器。Internet成為了一個巨型的軟件倉庫。FTP在文件傳輸中還支持斷點續(xù)傳功能,可以大幅度地減小CPU和網(wǎng)絡(luò)帶寬的開銷。2.2.2FTP服務(wù)器登錄方式的分類我們已經(jīng)知道FTP服務(wù)實際上就是將各種可用資源放在各個FTP主機中,網(wǎng)絡(luò)上的用戶可以通過Internet聯(lián)到這些主機上,并且使用FTP(文件傳送協(xié)議)將想要的文件拷回到自己的計算機中。在使用FTP傳送文件之前,最主要的步驟就是如何聯(lián)入各Internet上的FTP服務(wù)器。聯(lián)入的主要步驟也就是登錄(Login)的過程。通常用戶在欲下載的FTP服務(wù)器上輸入許可的帳號(account)和密碼(password),得到該服務(wù)器許可后,即可進入。FTP服務(wù)器分為兩種:其一,為一般的FTP服務(wù)器,進入這種服務(wù)器時必須擁有該主機的帳號和密其二,為匿名FTP服務(wù)器(稱為anonymousFTP服務(wù)器)登錄此類FTP服務(wù)器時,用戶只要以“guest”或“anonymous”為帳號,并以自己的E-mail地址為密碼,即可進入該FTP服務(wù)器主機,任意瀏覽和下載文件。當用戶登錄到某個FTP服務(wù)器時,如果用“guest”或“anonymous”為帳號,均無法進入,則表明該服務(wù)器不是匿名FTP服務(wù)器。實際上,匿名FTP只是FTP中的一種,它是一種開放式帳號的FTP服務(wù)器,它可以為網(wǎng)絡(luò)上的任何使用者所利用,與非匿名的FTP不同的只是登錄時的帳號為“anonymous”,而密碼為任一用戶的E-mail地址?,F(xiàn)在,某些站點還明確要求使用電子郵件地址作為匿名用戶密碼,而不接受“guest”這樣的密碼。提供電子郵件地址,有助于讓站點的擁有者了解到是哪些人在使用他們的服務(wù)。2.2.3FTP運行原理FTP的工作原理與其他許多網(wǎng)絡(luò)實用程序一樣,也是基于客戶/服務(wù)器模式?;ヂ?lián)網(wǎng)文件傳輸協(xié)議(FileTransferProtocol)標準是在FTC959說明的。該協(xié)議定義了一個在遠程計算機系統(tǒng)和本地計算機系統(tǒng)之間傳輸文件的標準。一般來說,要傳輸文件的用戶需先經(jīng)過認證以后才能登錄ftp服務(wù)器,訪問在遠程服務(wù)南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)的交互。就模型而言,從1973年以來并沒有什么變化。如圖2.1所示。表2.2交互元素列表軟件要素名稱應(yīng)用說明用戶接口提供了一個用戶接口并使用客戶端協(xié)議解釋器的服務(wù)USERPJ客戶端協(xié)議解釋器,向遠程服務(wù)器協(xié)議機發(fā)送命令并且驅(qū)動客戶傳輸過程UPTP客戶端數(shù)據(jù)傳輸協(xié)議,負責實現(xiàn)與遠端服務(wù)器進行數(shù)據(jù)傳輸,并與客戶端本地文件系統(tǒng)交互服務(wù)器協(xié)議解釋器,響應(yīng)客戶協(xié)議機發(fā)出的命令,并驅(qū)動服務(wù)器端數(shù)據(jù)傳輸過程服務(wù)器數(shù)據(jù)傳輸協(xié)議負責和客戶進行數(shù)據(jù)傳輸以及服務(wù)器端文件系統(tǒng)通信PI之間的連接一般被稱作控制連接(controlconnection),DTP之間的連接被稱作數(shù)據(jù)連接(dataftp服務(wù)器監(jiān)聽端口號21來等待控制連接建立請求,當客戶連接請求到達,會在客戶和ftp服務(wù)器之間建立一個控制連接。而數(shù)據(jù)連接端口號的選擇依賴于控制連接上的命令,通常是客戶發(fā)送一個控制消息來指定客戶需要建立一個數(shù)據(jù)連接來傳輸ftp數(shù)據(jù)(如下載/上載一個文件,顯示當前目錄的內(nèi)容等等,都需要建立南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)6數(shù)據(jù)連接來傳輸數(shù)據(jù)),在該消息中,指定了客戶監(jiān)聽并等待連接的端口號,而服務(wù)器從控制連接收到該命令,向客戶端發(fā)起一個連接請求到消息中指定的端口號,客戶端收到該請求以后就會建立一個數(shù)據(jù)連接。連接建立以后,服務(wù)器或客戶就會主動通過該連接發(fā)送數(shù)據(jù)(可能是要傳輸?shù)奈募?,也可能是用戶在命令行上發(fā)出的IS命令的輸出)。一個完整的FTP文件傳輸需要建立兩種類型的連接,一種為文件傳輸下命令,稱為控制連接,另一種實現(xiàn)真正的文件傳輸,稱為數(shù)據(jù)連接。1.控制連接客戶端希望與FTP服務(wù)器建立上傳下載的數(shù)據(jù)傳輸時,它首先向服務(wù)器的TCP21端口發(fā)起一個建立連接的請求,F(xiàn)TP服務(wù)器接受來自客戶端的請求,完成連接的建立過程,這樣的連接就稱為FTP控制連接。2.數(shù)據(jù)連接FTP控制連接建立之后,即可開始傳輸文件,傳輸文件的連接稱為FTP數(shù)據(jù)連接。FTP數(shù)據(jù)連接就是FTP傳輸數(shù)據(jù)的過程,它有兩種傳輸模式:主動傳輸模式(Active)和被動傳輸模式(PASSIVE),如圖2.3所示。FTPDataConnectionInitationServerFTPDataConngctionthitationHighServer圖2.3主動傳輸模式和被動傳輸模式1)主動傳輸模式當FTP的控制連接建立,客戶提出目錄列表、傳輸文件時,客戶端發(fā)出PORT命令與服務(wù)器進行協(xié)商,F(xiàn)TP服務(wù)器使用一個標準端口20作為服務(wù)器端的數(shù)據(jù)連接端口(ftp-data),與客戶建立數(shù)據(jù)連接。端口20只用于連接源地址是服務(wù)器南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)7端的情況,并且端口20沒有監(jiān)聽進程來監(jiān)聽客戶請求。在主動傳輸模式下,F(xiàn)TP的數(shù)據(jù)連接和控制連接方向相反,由服務(wù)器向客戶端發(fā)起一個用于數(shù)據(jù)傳輸?shù)倪B接??蛻舳说倪B接端口由服務(wù)器端和客戶端通過協(xié)商確定。主動傳輸模式下,F(xiàn)TP服務(wù)器使用20端口與客戶端的暫時端口進行連接,并傳輸數(shù)據(jù),客戶端只是處于接收狀態(tài)。2)被動傳輸模式當FTP的控制連接建立,客戶提出目錄列表、傳輸文件時,客戶端發(fā)送PASV命令使服務(wù)器處于被動傳輸模式,F(xiàn)TP服務(wù)器等待客戶與其聯(lián)系。FTP服務(wù)器在非20端口的其它數(shù)據(jù)傳輸端口上監(jiān)聽客戶請求。在被動傳輸模式下,F(xiàn)TP的數(shù)據(jù)連接和控制連接方向一致,由客戶端向服務(wù)器發(fā)起一個用于數(shù)據(jù)傳輸?shù)倪B接。客戶端的連接端口是發(fā)起該數(shù)據(jù)連接請求時使用的端口。當FTP客戶在防火墻之外訪問FTP服務(wù)器時,需要使用被動傳輸模式。被動傳輸模式下,F(xiàn)TP服務(wù)器打開-個暫態(tài)端口等待客戶端對其進行連接,并傳輸數(shù)據(jù),服務(wù)器并不參與數(shù)據(jù)的主動傳輸,只是被動接受。南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)8第三章開發(fā)環(huán)境及工具介紹3.1C語言及VC++概述C語言是在70年代初創(chuàng)建的一種計算機語言,它既有匯編語言可以直接訪問機器硬件的功能,又具有高級語言面向用戶、可讀性好和易于記憶的優(yōu)點,因此受到廣大程序員的歡迎。C是一種結(jié)構(gòu)化的程序設(shè)計語言。它由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成,便于實現(xiàn)由上到下、逐步細化的結(jié)構(gòu)化程序設(shè)計。因此,用C編寫的程序具有容易理解和便于維護的優(yōu)點。C語言的函數(shù)結(jié)構(gòu)有利于程序分割為相對獨立的功能模塊,為大型軟件實現(xiàn)模塊化的程序設(shè)計創(chuàng)造了條件。C沒有依賴于硬件的輸入和主、輸出語句,因此用它編制的程序有較好的可移植性。C語言首先在Unix操作系統(tǒng)中得到了應(yīng)用,由于它的這些優(yōu)點很快成為當前應(yīng)用最為廣泛C語言的優(yōu)點有:(1)簡潔緊湊、靈活方便C語言一共只有32個關(guān)鍵字,9種控制語句,程序書寫形式自由,區(qū)分大小寫。把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C語言可以像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。(2)運算符豐富C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。(3)數(shù)據(jù)類型豐富C語言的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實現(xiàn)各種復雜的數(shù)據(jù)結(jié)構(gòu)的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強大。(4)C是結(jié)構(gòu)式語言結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)9MicrosoftVisualC++是Microsoft公司推出的開發(fā)Win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不但具有程序框架自動生成、靈活方便的類管理、代碼編寫和界面設(shè)計集成交互操作、可開發(fā)多種程序等優(yōu)點,而且通過簡單的設(shè)置就可使其生成的程序框架支持數(shù)據(jù)庫接口、OLE2,WinSock網(wǎng)絡(luò)、3D控制界面。它以擁有“語法高亮”,IntelliSense(自動編譯功能)以及高級除錯功能而著稱。比如,它允許用戶進行遠程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動正在調(diào)試的程序。其編譯及建置系統(tǒng)以預編譯頭文件、最小重建功能及累加連結(jié)著稱。這些特征明顯縮短程式編輯、編譯及連結(jié)的時間花費,在大型軟件計劃上尤其顯著。VisualC++6.0是微軟公司于1998年推出的。它的最大優(yōu)點就是提供了功能強大的MFC類庫,MFC是一個很大的C++類層次結(jié)構(gòu),其中封裝了大量的類及其函數(shù),很多Windows程序所共有的標準內(nèi)容可以由MFC的類來提供,MFC類為這些內(nèi)容提供了用戶接口的標準實現(xiàn)方法,程序員所要做的就是通過預定義的接口把具體應(yīng)用程序特有的東西填入這個輪廓,這將簡化編程工作大大的減少程序員編寫的代碼數(shù)量,使編程工作變得更加輕松容易。3.1.3VC++6.0集成開發(fā)環(huán)境VisualC++提供了一個集源程序編輯、代碼編譯與調(diào)試于一體的開發(fā)環(huán)境,這個環(huán)境稱為集成開發(fā)環(huán)境,對于集成開發(fā)環(huán)境的熟悉程度直接影響程序設(shè)計的效率。開發(fā)環(huán)境是程序員同VisualC++的交互界面,通過它程序員可以訪問C++源代碼編輯器、資源編輯器,使用內(nèi)部調(diào)試器,并且可以創(chuàng)建工程文件。MicrosoftVisualC++是多個產(chǎn)品的集成。VisualC++從本質(zhì)上講是一個Windows應(yīng)用程序。VisualC++有兩個版本,對于每一個版本,都有對應(yīng)的文檔。1)專業(yè)版本,它包括一個更高級的優(yōu)化編譯器,更廣泛的文檔,并能設(shè)計基2)標準版本,其費用較低,沒有那么高級的編譯器,文檔較少,且不能設(shè)計MFC(MicrosoftFoundationClass)庫是Microsoft為利用VC++開發(fā)的Windows應(yīng)用程序而提供的應(yīng)用程序框架,在這個框架的支持下,對于不同的應(yīng)用程序,編程的主要任務(wù)是填寫各自特殊部分的代碼,MFC由于某種原因130多個類組成,這些類封裝了兩千多個API函數(shù)。MFC類庫主要包括兩類,一組是一般用途類,它提供了許多有用的抽象類,如Cfile類代表文件;CWnd類是窗口類,這些在Windows的編程中有重要的作用。另一類是OLE類,這一類專門用于OLE的編程。使用MFC的優(yōu)點很多,主要的優(yōu)點如下:南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)1)用類編程,將代碼和數(shù)據(jù)封裝在類中,大大減少了編程的復雜性。2)通過繼承實現(xiàn)了基本的代碼重用。在MFC中定義了大量類,所以可以在編程中通過繼承來使用這些類,另外,MFC還在這些類中定義了大量的虛函數(shù),也就是說,對于這些函數(shù),不但可以保存它們原有的特性,還可以對這些函數(shù)進行修改,使之具有新的特性。3)提供了大量的工具方便編程。在MFC中,可以使用AppWizard(應(yīng)用程序向?qū)?,來建立應(yīng)用程序的框架,可以使用ClassWizard(類向?qū)?在程序中添加類、變量以及在程序中傳遞各種信息。用ControlWiard(控件向?qū)?創(chuàng)建可以在Windows4)借助設(shè)計良好的類庫通??梢詼p少代碼規(guī)模。Serv-U是目前眾多的FTP服務(wù)器軟件之一。通過使用Serv-U,用戶能夠?qū)⑷魏我慌_PC設(shè)置成一個FTP服務(wù)器,這樣,用戶或其他使用者就能夠使用FTP協(xié)議,通過在同一網(wǎng)絡(luò)上的任何一臺PC與FTP服務(wù)器連接,進行文件或目錄的復制,移動,創(chuàng)建,和刪除等。這里提到的FTP協(xié)議是專門被用來規(guī)定計算機之間進行文件傳輸?shù)臉藴屎鸵?guī)則,正是因為有了像FTP這樣的專門協(xié)議,才使得人們能夠通過不同類型的計算機,使用不同類型的操作系統(tǒng),對不同類型的文件進行相互雖然目前FTP服務(wù)器端的軟件種類繁多,相互之間各有優(yōu)勢,但是Serv-U憑借其獨特的功能得以展露頭腳。具體來說,Serv-U能夠提供以下功能:1)符合windows標準的用戶界面友好親切,易于掌握。2)支持實時的多用戶連接,支持匿名用戶的訪問;3)通過限制同一時間最大的用戶訪問人數(shù)確保PC的正常運轉(zhuǎn)。4)安全性能出眾。在目錄和文件層次都可以設(shè)置安全防范措施。5)能夠為不同用戶提供不同設(shè)置,支持分組管理數(shù)量眾多的用戶。6)可以基于IP對用戶授予或拒絕訪問權(quán)限。7)支持文件上傳和下載過程中的斷點續(xù)傳。8)支持擁有多個IP地址的多宿主站點。9)能夠設(shè)置上傳和下載的比率,硬盤空間配額,網(wǎng)絡(luò)使用帶寬等,從而能夠保證用戶有限的資源不被大量的FTP訪問用戶所消耗。10)可作為系統(tǒng)服務(wù)后臺運行。11)可自用設(shè)置在用戶登錄或退出時的顯示信息,支持具有UNIX風格的外部鏈接。所謂socket通常也稱作"套接字",應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)包中。ServerSocket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時使用的。在連接成功時,應(yīng)用程序兩端都會產(chǎn)生一個Socket實例,操作這個實例,完成所需的會話。對于一個網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有差別,不因為在服務(wù)器端或在客戶端而產(chǎn)生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。Socket通訊機制是一種較原始的通訊機制,通過Socket的數(shù)據(jù)表現(xiàn)出來的形式是原始字節(jié)流信息,通訊雙方只要在此基礎(chǔ)上按照雙方約定方式進行數(shù)據(jù)的格式化和解析處理工作,這樣才能完成具體的應(yīng)用,即實現(xiàn)某種協(xié)議的過程。Socket可以看成是在兩個程序間進行通訊連接的兩個端點,一個程序?qū)⒁欢涡畔懭胍粋€Socket中,該Socket將這段信息發(fā)送給另外一個Socket,以便使這段信息能傳達到其他程序中。圖3.1是Socket的工作原理圖。Socket有兩種主要的工作方式:有連接的和無連接的。有連接方式如流通訊;無連接方式如數(shù)據(jù)包方式。有連接的Socket操作就像一部電話。它們必須建立一個連接和一個呼叫。所有的事情在到達時的順序與它們出發(fā)時的順序一樣。南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)第四章FTP服務(wù)器的構(gòu)建與應(yīng)用首先,需選擇好開發(fā)工具,設(shè)想好程序?qū)⒁獙崿F(xiàn)的大體功能后,我們就要分析該程序所需的條件,對該程序中將要遇到的問題做一下準備工作,以便于以后其次,要根據(jù)我們想要在局域網(wǎng)內(nèi)進行文件傳輸?shù)囊?,因為本程序要實現(xiàn)的是FTP服務(wù)器的構(gòu)建與應(yīng)用,所以我要在搭建好服務(wù)器的同時,配上相應(yīng)的FTP客戶端,以實現(xiàn)其應(yīng)用。具體還有:(1)客戶端接口與服務(wù)器接口對接的問題。只有使用相同的接口才能順利實現(xiàn)對接。我打算采用FTP默認的21接口。(2)FTP客戶端的功能實現(xiàn)。本客戶端可以實現(xiàn)FTP客戶的基功能。當鏈接成功后,可以順利實現(xiàn)資料的上傳、下載、以及資料路徑的查詢等。(3)FTP客戶端的美化。由于MFC的界面相對單一,界面基本為最原始界面,所以對客戶端軟件的美化也是十分必要的。4.2功能分析在做程序之前,我們要先確定本程序的功能,只有確定了功能,才能確定程序中使用什么函數(shù)來實現(xiàn)。如果想在局域網(wǎng)內(nèi)進行文件傳輸,首先要有服務(wù)器端和客戶端,兩者配合使用。先打開客戶端和服務(wù)器,然后讓客戶登陸一下服務(wù)器,服務(wù)器端設(shè)制一下服務(wù)器所完成的功能,然后客戶端再向服務(wù)器發(fā)送應(yīng)用請求,以此達到課題目的。4.3FTP服務(wù)器的搭建從處下載最新FTPServ-UServer(下文簡稱Serv-U),然后把它安裝到計算機,操作步驟如下:(1)雙擊ServUSetup.exe,運行Serv-U安裝程序,彈出歡迎窗口,單擊【下南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)安裝向?qū)?安裝向?qū)?Serv-U重要:如果已安裝Servu比較舊的版本,并且未備份數(shù)據(jù)文件;請立即退出本安裝進程并備份Serv-U的安裝目錄和數(shù)據(jù)目錄。如果安裝到現(xiàn)有的舊版本目錄中,則將升級當前的安裝的版本。這將保留所有當前的設(shè)置。本電腦程序受著作權(quán)法和國際公約的保護。為鼓勵今后的開發(fā)工作,請勿散發(fā)您的注冊碼。謝謝!圖4.1選擇安裝Serv-U程序(2)選擇接受協(xié)議,單擊【下一步】按鈕;安裝向?qū)?安裝向?qū)?Serv-U許可協(xié)議使用本軟件前請閱讀以下條款和條件。一旦使用Sery-Uo,即表明您接受本許可協(xié)議和保證條款。單機注冊版Serv-Ue可以由單個用戶在一臺電腦上獨自使用,或安裝到一臺電腦供多人使用。一份Sery-Us許可不得安裝于多臺電腦上也ianLHm=Ahhn-wnmrnLm-nnh+◎我接受協(xié)議(A)<上一步(B)下一步M>圖4.2接受安裝協(xié)議(3)選擇安裝路徑,點擊【下一步】按鈕;南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)將ServU安裝到哪里?圖4.3選擇安裝路徑(4)確定安裝路徑及開始菜單后,點擊【安裝】按鈕,進行程序安裝;D:\BiShe\Sery-U圖4.4確認位置,開始安裝待安裝結(jié)束后,對Serv-U進行基本設(shè)置安裝完Serv-U以后,需要對此進行設(shè)置,才能正式投入使用,首先對域名與IP地址進行設(shè)置,操作步驟如下:(1)倘若是初次安裝,會彈出如下對話框,選擇【是】定義新域;南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)圖4.5定義新域(2)輸入域名稱后選擇【下一步】定義新域;域向?qū)б徊襟E1總步驟4域向?qū)б徊襟E1總步驟4區(qū)歡迎使用Serv-U域向?qū)?。本向?qū)椭谖募?wù)器上創(chuàng)建域。每個域名都是唯一的標識符,用于區(qū)分文件服務(wù)器上的其他域。名稱?啟用域圖4.6輸入新域名稱(3)使用系統(tǒng)默認端口,直接點擊【下一步】;域向?qū)?步驟2總步驟4域向?qū)?步驟2總步驟4些協(xié)議,則這些協(xié)議可能無法使用。請選擇域應(yīng)該使用的協(xié)議及其相應(yīng)?ImplictFTPS(SSLTLS)?HTTPS(SSL加密的HTTP80443圖4.7默認端口(4)默認IP地址監(jiān)聽,直接點擊【下一步】;南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)域向?qū)?步驟3總步驟4域向?qū)?步驟3總步驟4<<所有可用的IPv4地址>><<所有可用的IPv6地址>>?創(chuàng)建IPv6監(jiān)聽器圖4.8默認IP地址(5)選擇密碼加密模式,點擊【完成】;域向?qū)в蛳驅(qū)Аげ襟E4總步驟4-密碼加密模式◎使用服務(wù)器設(shè)置(加密:單向加密)簡單的雙向加密(不太安全)無加密(不推薦)更改服務(wù)器設(shè)置□允許用戶恢復密碼完成取消圖4.9密碼加密模式2.創(chuàng)建新賬戶Serv-U已經(jīng)允許匿名用戶登錄,并取得訪問權(quán)限,但最好還是建立一套自己的完整用戶管理制度。(1)選擇【是】創(chuàng)建新用戶賬戶;南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)域中暫無用戶,您現(xiàn)在要為該域創(chuàng)建用戶賬戶嗎?圖4.10創(chuàng)建用戶帳戶(2)選擇使用用戶向?qū)О惭b后,輸入新用戶賬戶的登錄ID,點擊【下一步】;用戶向?qū)?步驟1總步驟4用戶向?qū)?步驟1總步驟4客戶端嘗試登錄文件服務(wù)器時通過登錄D標識其賬戶。(可選)下一步>取消圖4.11填寫登錄ID(3)設(shè)置登錄密碼,若無密碼可不填,接著點擊【下一步】;(3)設(shè)置登錄密碼,若無密碼可不填,接著點擊【下一步】;用戶向?qū)?步驟2總步驟4兇歡迎使用Serv-U用戶賬戶向?qū)?。該向?qū)椭焖賱?chuàng)建新用戶,以訪問您的文件服務(wù)器。用戶必須在下一次登錄時更改密碼<上一步下一步>取消圖4.12填寫登錄密碼(4)設(shè)置用戶登錄根目錄,若選擇鎖定于根目錄,則其根目錄的地址將被隱南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)藏而只顯示為“/”,設(shè)定好后選擇【下一步】;用戶向?qū)?步驟3總步驟4用戶向?qū)?步驟3總步驟4歡迎使用Serv-U用戶賬戶向?qū)?。該向?qū)椭焖賱?chuàng)建新用戶,以訪問您的文件服務(wù)器。根目錄是用戶成功登錄文件服務(wù)器后所處的物理位置。如果將用戶鎖定于根目錄,則其根目錄的地址將被隱藏而只顯示為Y。<上一步下一步>取消圖4.12設(shè)定用戶根目錄圖4.12設(shè)定用戶根目錄(5)選擇用戶訪問權(quán)限,有“限制訪問”和“完全訪問”兩項選擇,接著點擊【完成】,新用戶創(chuàng)建成功;用戶向?qū)?步驟4總步驟4歡迎使用Serv-U用戶賬戶向?qū)?。該向?qū)椭焖賱?chuàng)建新用戶,以訪問您的文件服務(wù)器。選擇要授予用戶在其根目錄的訪問權(quán)限。只讀訪問允許用戶瀏覽并下載文件。完全訪問使用戶能夠完全掌控在其根目錄內(nèi)的文件和目錄。圖4.13設(shè)定用戶訪問權(quán)限(6)如圖4.14所示,用戶賬戶列表中多出剛剛新建的賬戶;南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)9i6w)在表體生根進戶數(shù)調(diào)案用戶Winacr備證a數(shù)是設(shè)柔時育根些壟D.@tneFTP向全法:縣都書,過主2小時:學計o.按好額正英定行切兩:0日。00142詞產(chǎn)是上行10平:下行:0年8圖4.14用戶賬戶列表如圖4.15所示,服務(wù)器管理者可以對用戶進行統(tǒng)計、監(jiān)控和管理;文理屋資通上并有城組用產(chǎn)會藝值察并對其進行置理,丑出重費一型個被接上國被執(zhí)+和們衛(wèi)時中數(shù)。生體無行時海0日,00-0804264場1排1*均登錄對劃2上21.30字節(jié)0發(fā)樣)00CB(03文盛越GPVymgmN4wt#-a主圖4.15用戶活動統(tǒng)計同時還可以設(shè)定限制等高級功能,如圖4.16;南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)出伴意本處理社示和50LSS4王要題V安加封附制可以要基在據(jù)務(wù)費動有型定結(jié)機。金練冊(用產(chǎn)稱入要意大本不始對在何時而要研一,擺稱一基三要明以,要五任何時進裝響一星響,星班三重期以,要貼五在解市任詞時間星好一星爬一星納三星構(gòu)己,能形五按養(yǎng)額正某定行明離。0日,001138合道:熱m登過擊24個粒3十3上行:提學節(jié):下行:21字帶在何時年謀賠一面所二墨師三重地算,重五在何時用要新一重稱二單稱三重期口,要新五低日時填星的一星期一集婦三星期值,蓋五興擇工Fatwandnsfut美dHTF蓬像排地需預地bns名壽出對2圖4.16限制功能設(shè)置Serv-U的功能十分強大,這里就不一一介紹,在用Serv-U軟件搭建好服務(wù)器后,接著是編輯客戶端軟件,以此達到課題要求。4.4FTP客戶端的搭建本程序是一個小型FTP客戶端程序。主要實現(xiàn)的是FTP用戶的登錄、上傳、下載、查詢路徑等,并給出相應(yīng)的提示。程序采用VisualC++6.0開發(fā),基于MFC的WindowsAPI函數(shù)進行編程。由于采用了MFC自帶的FTP庫函數(shù)編程,使得在搭建FTP客戶端程序的時候變得很便捷。客戶端程序采用MFC事件響應(yīng)觸發(fā)機制,即每按下一個按鍵便響應(yīng)相應(yīng)的事件去觸發(fā)程序的執(zhí)行。客戶端主要由以下四個事件組成:①連接;②查詢;③上傳;④下載。每個事件已近用類封裝起來獨立4.4.1連接當界面中的連接按鈕被點擊后,會轉(zhuǎn)向連接的類函數(shù),連接函數(shù)主要調(diào)用WindowsAPI的GetFtpConnection函數(shù)進行客戶端程序與FTP服務(wù)器程序之間的GetFtpConnection連接到一個FTP服務(wù)器,創(chuàng)建并返回指向CFTPConnection對象的指針。如果函數(shù)調(diào)用錯誤的話,可通過檢查產(chǎn)生的CInternetException對象來確定出錯類型。在程序中,如果檢查產(chǎn)生了調(diào)用錯誤,則會在后面的程序中將連接刪除。在信息提示框中會提示響應(yīng)的連接正確或者錯誤信息。其中核心的連接代碼如下所示:南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)if(!pFtpConnect)//IfpFtpConnect=NULL,即需要進行的是連接服務(wù)器工作{pFtpConnect=sess.GetFtpConnection(m_strFtp,m_strName,m_strPwd);}catch(CInternetException*pEx)//IfconnecttoFTPs{pFtpConnect=NULL:{pFtpConnect->GetCurrentDirectory(m_strDirectory);//displaydirectoryMyListFile();//更新列表框中的文件列表,程序附在后面}else//需要進行斷開服務(wù)器的工作pFtpConnect->Close();pFtpConnect=NULL;UpdateData(false);查詢按鈕被點擊后,轉(zhuǎn)入查詢功能函數(shù),查詢函數(shù)主要調(diào)用WindowsAPI的SetCurrentDirectory成員函數(shù)設(shè)置好后,再調(diào)用GetCurrentDirectory函數(shù)即可得到設(shè)置路徑目錄下的所有文件。核心代碼如下所示:南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)voidCMyFTPDlg::OnButtonFind()//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();if(m_strDirectory!=""){pFtpConnect->SetCurrentDirectory(m_strDirectory);pFtpConnect->GetCurrentDirectory(m_strDirectory);UpdateData(false);1當按下界面中的上傳函數(shù)后。程序轉(zhuǎn)向上傳的類函數(shù)中,在這個函數(shù)中,主要調(diào)用WindowsAPI函數(shù)庫中的PutFile()成員函數(shù)。調(diào)用這個成員函數(shù)可以把文件保存到FTP服務(wù)器。PutFile()函數(shù)是一個比較高級的例程,它可以處理有關(guān)把文件存放到服務(wù)器上的工作。只發(fā)送數(shù)據(jù),或要嚴格控制文件傳輸?shù)膽?yīng)用程序,應(yīng)該調(diào)用OpenFile和CInternet:Write。利用自己選擇的值來取代dwContext默認的值,設(shè)置為上下文標識符,上下文標識符是CInternetSession對象創(chuàng)建的CFtpConnection對象的特定操作有關(guān),這個值返回給CInternetSession::OnStateCallBack,從而把操作的狀態(tài)通報給它所標識的上下文。核voidCMyFTPDlg::OnButtonUpload()//TODO:AddyourcontrolnotificationhandlercodehereCStringstrSourceName,strDestName;CFileDialogldFile(true,"","*.*");//true表示打開文件if(ldFile.DoModal)==IDOK)strSourceName=ldFile.GetPathName();//其中路徑包括目錄和文件名strDestName=ldFile.GetFileName();//僅提供文件名if(!pFtpConnect->PutFile(strSourceName,strDestName))MessageBox("Errorputtingfile");}南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)當按下界面中的下載按鈕后,主程序進入下載的類函數(shù)中,在這個函數(shù)中,主要以調(diào)用WindowsAPI函數(shù)的GetFile()成員函數(shù)得以實現(xiàn)。調(diào)用這個成員函數(shù),可以從FTP服務(wù)器取得文件,并且把文件保存在本地機器上。GetFile()函數(shù)是一個比較高級的例程,它可以處理所有有關(guān)從FTP服務(wù)器讀FILE_TRANSFER_TYPE_ASCI,文件數(shù)據(jù)的傳輸也會把控制和格式符轉(zhuǎn)化為Windows中的等階符號。默認的傳輸模式是二進制模式,文件會以和服務(wù)器上相同的格式被下載。pstrRemoteFile和pstrLocalFile可以是相對于當前目錄的部分文件名,也可以是全文件名,在這兩個名字中間,都既可以用反斜杠(1)或者正斜杠(1)來作為文件名的目錄分隔符,GetFile()在使用前會把目錄分隔符轉(zhuǎn)化為適當?shù)淖址?。可以用自己選擇的值來取代dwContext默認的值,設(shè)置為上下文標識符與CInternetSession對象創(chuàng)建。返回給CInternetSession:OnStatusCallBack的值指出了所標識操作的狀態(tài)。核心代碼如下所示:if(m_strFile!="")//m_strFile為選中的列表項{if(m_strFile.Right(5)=="<DIR>")MessageBox("Unabletodownloaddirectory");{CFileDialogldFile(FALSE,NULL,m_strFile);//false類型對話框為保存文件對話框if(ldFile.DoModal()==IDOK)if(!pFtpConnect->GetFile(m_strFile,ldFile.GetFileName)))MessageBox("Errorgettingfile");{南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)程序完成后。界面如圖4.17所示:下載南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)第五章系統(tǒng)測試5.1測試過程首先,因為創(chuàng)建的是服務(wù)器和客戶端,所以先打開自己的服務(wù)器,查看服務(wù)器是否能夠運行,同時查看已添加賬戶情況。如圖5.1所示:anonymouszero0915全名其次,當看到賬戶成功運行后,查看電腦的IP地址作為登錄服務(wù)器的IP地以太網(wǎng)適配器本地連接:默認網(wǎng)關(guān).圖5.2IP地址查看再打開客戶端,輸入IP地址和帳號、密碼,實現(xiàn)客戶端與服務(wù)器端的登錄。南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)Files<DIR>退出上傳圖5.3客戶端的登錄當與服務(wù)器成功連接后,進行下載、上傳文件測試,觀察下載、上傳文件是否正常,同時可測試路徑查詢功能。另仔內(nèi)產(chǎn)圍庫保存類型():FTP_Down圖5.4下載對話框南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)盤盤取消庫文件名:圖5.5上傳對話框經(jīng)測試,客戶端服務(wù)器均順利運行,如圖5.6所示。同時,匿名登錄也測試nnunnu慧文理服資推上并面城到用產(chǎn)會藝級整并對其進行管理,日出發(fā)進一型小根排上國8*MH6=k繁單地上工全3(有2過24小時2:e+1上行*行0節(jié)tnn上一圖5.6服務(wù)器活動狀態(tài)查詢經(jīng)測試,服務(wù)器與客戶端運行正常,各功能使用正常,均可順利運行,達到南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)預期目的。測試成功。5.3測試出現(xiàn)的問題和不足測試過程中,未發(fā)現(xiàn)問題。只是客戶端的界面還是稍顯簡陋,功能也相對單一,希望能夠在日后加以完善!南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計是本科學習階段一次非常難得的理論與實際相結(jié)合的機會,通過這次比較完整的小型FTP系統(tǒng)設(shè)計,我擺脫了單純的理論知識學習狀態(tài),而實際設(shè)計的結(jié)合鍛煉了我的綜合運用所學的專業(yè)基礎(chǔ)知識,解決實際工程問題的能力,同時也提高我查閱文獻資料、設(shè)計手冊、設(shè)計規(guī)范以及電腦能力水平,而且通過對整體的掌控,對局部的取舍,以及對細節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗得到了豐富,這是我們都希望看到的也正是我們進行畢業(yè)設(shè)計的目的所雖然畢業(yè)設(shè)計內(nèi)容繁多,過程繁瑣但我的收獲卻更加豐富。以前我對VC++了解不明確,但是現(xiàn)在我了解了VC++的運行環(huán)境,使用方法,以及一些命令的使用。以往編程時,不注意編程規(guī)范,致使程序運行不出來,現(xiàn)在在編寫程序時很注意編寫規(guī)范,以前一些控件不會使用,現(xiàn)在也都可以熟練使用了,在設(shè)計過程中一些功能的實現(xiàn)讓我很頭痛,原因是由于本身設(shè)計受到編程語言的限制,而又必須考慮本專業(yè)的一些要求規(guī)范,從而形成了一些矛盾點,這些矛盾在處理上讓人很難斟酌,正是基于這種考慮我意識到,要想更完美的進行一次設(shè)計,與他人的交流溝通是很有必要的。提高是有限的但提高也是全面的,正是這一次設(shè)計讓我積累了無數(shù)實際經(jīng)驗,使我的頭腦更好的被知識武裝了起來,也必然會讓我在未來的工作學習中表現(xiàn)出更高的應(yīng)變能力,更強的溝通力和理解力。順利如期的完成本次畢業(yè)設(shè)計給了我很大的信心,讓我了解專業(yè)知識的同時也對本專業(yè)的發(fā)展前景充滿信心,今后我更會關(guān)注新項目開發(fā),并爭取盡快的掌握這些先進的知識,更好的為祖國的四化服務(wù)。南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)四年的大學生活轉(zhuǎn)眼就要結(jié)束了,在即將畢業(yè)之際,為了考驗我們四年來所學知識的成果,以及加強我們分析解決計算機應(yīng)用實際問題的能力和培養(yǎng)我們調(diào)查研究、查閱技術(shù)文獻、資料、手冊以及編寫技術(shù)文獻的能力,學校安排我們這次畢業(yè)設(shè)計。通過這次畢業(yè)設(shè)計,我們各方面都得到了很好的鍛煉。本課題在選題及研究過程中得到許嵐老師的悉心指導,許老師多次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。許老師一絲不茍的作風,嚴謹求實的態(tài)度,踏踏實實的精神,不僅授我以文,而且教我做人,雖歷時不長,卻給以終生受益無窮之道。感謝許老師,··論文的每個實驗細節(jié)和每個數(shù)據(jù),都離不開你的細心指導。感謝我的室友們,從遙遠的家來到這個陌生的城市里,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。四年了,仿佛就在昨天。四年里,我們沒有紅過臉,沒有吵過嘴,沒有發(fā)生上大學前所擔心的任何不開心的事情。今后大家要各奔東西,為了自己的前程奮斗,大家珍重。感謝我的高中同學凌宇,正是你的幫助才使我的畢業(yè)設(shè)計錦上添花,祝你在研究生階段一切順利。感謝我的爸爸媽媽,焉得諼草,言樹之背,養(yǎng)育之恩,無以回報,你們永遠健康快樂是我最大的心愿。在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!最后,謹以此稚嫩的論文獻給所有關(guān)心和幫助過我的老師、親人、同學、和朋友們。我唯有在以后不斷地努力進取,以學業(yè)和工作的繼續(xù)求索來感謝培育我的母校和所有關(guān)心我的師長親朋!希望我們都幸福快樂!南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)參考文獻[1]王建新.基于Internet的通信系統(tǒng)虛擬實驗環(huán)境設(shè)計與實現(xiàn)[J].中南大學學報.2006年4月[2]張婧婧.基于Web和MATLAB的控制系統(tǒng)虛擬實驗室的研究與實現(xiàn)[J].襄樊學院學報.2010年5月[3]李凌云.基于MATLABWeb的網(wǎng)絡(luò)虛擬實驗系統(tǒng)的構(gòu)建[J].南京曉莊學院學報.2007年12月[4]任瑞玲.基于Simulink的時隙交換原理的仿真[J].電氣電子教學學報.2004年2月[5]糜正琨.交換技術(shù)[M].北京:清華大學出版社.2006年7月[6]蔡慧.Matlab仿真結(jié)果顯示技術(shù)的改進[J].電氣電子教學學報.2009年4月[7]李凌云.基于三層體系結(jié)構(gòu)的網(wǎng)絡(luò)虛擬實驗系統(tǒng)的設(shè)計與開發(fā)[D].浙江師范大學.2006年12月[8]XuHeyuan.RelationshipsAmongNGN,SoftswitchandIMS[J].ZTECommunications.2007年1月[9]ARIANITMARAJ,SKENDERRUGOVA.TheroleofsoftswitchinNGNnetwork[C].DNCOCO'09Proceedingsofthe8thWSEASinternationalconferenceonDatanetworks,communications,computers.2009.南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)(1)FTP客戶端啟動程序(MyFTP)#include"stdafx.h"#include"MyFTPDlg.h"#include"WelcomeWND.h"#include"SkinPPWTL.h"#ifdefDEBUG#definenewDEBUGNEW#undefTHIS_FILEstaticcharTHIS_FILE[]=_FILE_;#endif/1HHHHHHHH||||||||||}||//CMyFTPAppBEGIN_MESSAGE_MAP(CMyFTPApp,CWinApp)//NOTE-theClassWizardwilladdandremovemappingmacroshere.//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!//}}AFX_MSGON_COMMAND(ID_HELP,CWinApp::OnHelp)ENDMESSAGEMAPOCMyFTPApp::CMyFTPApp){//TODO:addconstructioncodehere,//PlaceallsignificantinitializationinInitInstance}////////||/////|/////////J/////!/////////////////////////TheoneandonlyCMyFTPAppobject南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)//IIII/H||||/////|///)//Standardinitializa//Ifyouarenotusingthesefeaturesandwishtoreducethesize//CWelcomeWND();Sleep(2500);//主窗口延時2.5秒#ifdefAFXDLLEnable3dControls()//CallthiswhenusingMFCinasharedDLLEnable3dControlsStatic();//CallthiswhenlinkingtoMFCstatically#endifm_pMainWnd=&dlg;intnResponse=dlg.DoModal();}elseif(nResponse==IDCANCEL){南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)//Sincethedialoghasbeenclosed,returnFALSEsothatweexitthel1application,ratherthanstarttheapplication'smessagepump.}(2)FTP客戶端功能程序(MyFTPDlg)#ifdefDEBUG#definenewDEBUGNEW#undefTHIS_FILEstaticcharTHIS_FILE[]=_FILE#endif//CAboutDlgdialogusedforAppAboutHH|IclassCAboutDlg:publicCDialog{enum{IDD=IDD_ABOUTBOX};//}}AFXDATA//ClassWizardgeneratedvirtprotected:virtualvoidDoDataExchange(CDataExchange*pDX);南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)//Implementationprotected://}}AFXMSGDECLAREMESSAGEMAP)CAboutDlg:CAboutDlg():CDialog(CAboutDlg::IDD){//{{AFX_DATA_INIT(CAboutDlg)}voidCAboutDlg::DoDataExchange(CDataExchange*pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CAboutDlg)}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)11{{AFX_MSG_MAP(CAb//NomessagehandlersEND_MESSAGE_MAPOCMyFTPDlg:CMyFTPD1g(CWnd*pParent/*=NULL*):CDialog(CMyFTPDlg::IDD,pParent)m_strName=_T("anonymous");m_strFile=_T("");//NotethatLoadIcondoesnotrequireasubsequentDestroylconinWin32m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);voidCMyFTPDlg:DoDataExchange(CDataExchange*pDX)CDialog::DoDataExchange(pDX);DDX_Control(pDX,IDC_LIST_FILE,m_listFile);DDX_Text(pDX,IDC_EDIT_NAME,m_strName);DDX_Text(pDX,IDC_EDIT_PWD,m_strPwd);DDX_Text(pDX,IDC_EDIT_DIR,m_strDirectory);BEGIN_MESSAGE_MAP(CMyFTPDlg,CDialog)ON_WM_SYSCOMMANDOONWMPAINTOON_WM_QUERYDRAGICONOON_BN_CLICKED(IDC_BUTTON_CONNECT,OnButtonConnect)ON_LBN_DBLCLK(IDC_LIST_FILE,OnDblclkListFile)ON_BN_CLICKED(IDC_BUTTON_DOWNLOAD,OnButtonDownload)ON_BN_CLICKED(IDC_BUTTON_FIND,OnButtonFind)ON_BN_CLICKED(IDC_BUTTON_UPLOAD,OnButtonUpload)//}}AFX_MSG_MAP//|||||」」」」!」」!!!!」!!!!!!!///]南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)/1CMyFTPDIgmessagehandlersCDialog:OnInitDialog();//Add"About…"menuitemtosystemmenu.//IDM_ABOUTBOXmustbeinthesystemcommandrange.ASSERT((IDM_ABOUTBOX&0xFFFO)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX<0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL)strAboutMenu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmptyO)pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);//Settheiconforthisdialog.TheframeworkdoesthisautomaticallySetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);//Setsmallicon//TODO:AddextrainitializationherepFtpConnect=NULL;returnTRUE;//returnTRUEunlessyousetthefocustoacontrolvoidCMyFTPDlg:OnSysCommand(UINTnID,LPARAMIParam)南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)if((nID&0xFFF0)==IDM{ABOUTBOX)CAboutDlgdlgAbout;dlgAbout.DoModal();{CDialog::OnSysCommand(nID,IParam);}//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelowl1todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,l/thisisautomaticallydoneforyoubytheframeworkvoidCMyFTPDlg::OnPaint){if(IsIconic)){CPaintDCdc(this);//devicecontextforpaintingSendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);//CentericoninclientrectangleintcxIcon=GetSystemMetrics(SM_CXICON);intcylcon=GetSystemMetrics(SM_CYICON);GetClientRect(&rect);intx=(rect.Width()-cxIcon+1)/2;inty=(rect.Height()-cylcon+1)/2;//Drawtheicondc.DrawIcon(x,y,m_hlcon);2南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)CDialog::OnPaint();}//ThesystemcallsthistoobtainthecursortodisplaywhiletheuserdragsHCURSORCMyFTPDlg::OnQueryDragIcon(){return(HCURSOR)m_hIcon;}//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();//Getthedatafromscreen//Dowehaveacurrentcoif(!pFtpConnect)//IfpFtpConnect=NULL,即需要進行的是連接服務(wù)器工作{try{pFtpConnect=sess.GetFtpConnection(m_strFtp,m_strName,m_strPwd);}catch(CInternetException*pEx)//IfconnecttoFTPseverisnotsucceed{pFtpConnect=NULL;}if(pFtpConnect!=NULL)//succeedpFtpConnect->GetCurrentDirectory(m_strDirectory);//displaydirectory//changebuttontextfrom"connectserver"to"closeserverconnect"UpdateData(false);MyListFile();//更新列表框中的文件列表,程序附在后面}else//需要進行斷開服務(wù)器的工作pFtpConnect->Close();deletepFtpConnect;pFtpConnect=NULL;m_strDirectory="";UpdateData(false);m_listFile.ResetContent();voidCMyFTPDlg::MyListFile)//生成目錄列表m_listFile.ResetContent();CFtpFileFindfinder(pFtpConnect);intbWorking=finder.FindFile(T("*"));CStringstrFileName;bWorking=finder.FindNextFile();strFileName=finder.GetFileName():if(finder.IsDirectory))strFileName+="<DIR>";m_listFile.AddString(strFileName);}finder.Close();}{//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();if(m_strFile!=""){南京郵電大學2007屆本科生畢業(yè)設(shè)計(論文)if(m_strDirectory.Right(1)!="/")temp=m_strF

溫馨提示

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

最新文檔

評論

0/150

提交評論