




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
南京郵電大學(xué) 指導(dǎo)單位通信與信息工程學(xué)院通信與信息工程學(xué)院畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明本人鄭重聲明:所提交的畢業(yè)設(shè)計(jì)(論文),是本人在導(dǎo)師指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果。除文中已注明引用的內(nèi)容外,本畢業(yè)設(shè)計(jì)(論文)不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對(duì)本研究做出過重要貢獻(xiàn)包括用戶的登錄(實(shí)名或匿名),文件的上傳、下載、刪除、目錄查詢等,并給出相應(yīng)的提示。通過該程序的開發(fā),基本上實(shí)現(xiàn)了一個(gè)FTP服務(wù)器所應(yīng)該具有的功求分析,軟件設(shè)計(jì)到軟件功能實(shí)現(xiàn),都始終遵循標(biāo)準(zhǔ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測(cè)試過程 5.2結(jié)果分析 385.3測(cè)試出現(xiàn)的問題和不足 39 40 41參考文獻(xiàn) 1南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)1第一章課題概述在眾多網(wǎng)絡(luò)應(yīng)用中,F(xiàn)TP(文件傳輸協(xié)議)有著非常重要的地位。Internet中一個(gè)十分重要的資源就是軟件資源,而各種各樣的軟件資源大多數(shù)都放在FTP服務(wù)器中。與大多數(shù)Internet服務(wù)一樣,F(xiàn)TP也是一個(gè)客戶機(jī)/服務(wù)器系統(tǒng)。用戶通過一個(gè)支持FTP協(xié)議的客戶機(jī)程序,連接到主機(jī)上的FTP服務(wù)器程序。用戶通過客戶機(jī)程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶發(fā)出的命令,并將執(zhí)行結(jié)果返回給客戶機(jī)。FTP服務(wù)可以根據(jù)服務(wù)對(duì)象的不同分為兩類:系統(tǒng)FTP服務(wù)器只允許系統(tǒng)上的合法用戶使用;匿名FTP服務(wù)器(AnonymousFTPServer)允許任何人登錄到FTP服務(wù)器去獲取文件。1.2技術(shù)支持與大多數(shù)Internet服務(wù)一樣,F(xiàn)TP也是一個(gè)客戶機(jī)/服務(wù)器系統(tǒng)。用戶通過一個(gè)支持FTP協(xié)議的客戶機(jī)程序,連接到在遠(yuǎn)程主機(jī)上的FTP服務(wù)器程序。用戶通過客戶機(jī)程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機(jī)。比如說,用戶發(fā)出一條命令,要求服務(wù)器向用戶傳送某一個(gè)文件的一份拷貝,服務(wù)器會(huì)響應(yīng)這條命令,將指定文件送至用戶的機(jī)器上??蛻魴C(jī)程序代表用戶接收到這個(gè)文件,將其存放在用戶目錄中。在FTP的使用當(dāng)中,用戶經(jīng)常遇到兩個(gè)概念:”下載”(Download)和”上傳”(Upload)。"下載"文件就是從遠(yuǎn)程主機(jī)拷貝文件至自己的計(jì)算機(jī)上;"上傳"文件就是將文件從自己的計(jì)算機(jī)中拷貝至遠(yuǎn)程主機(jī)上。用Internet語言來說,用戶可通過客戶機(jī)程序向(從)遠(yuǎn)程主機(jī)上傳(下載)文件。使用FTP時(shí)必須首先登錄,在遠(yuǎn)程主機(jī)上獲得相應(yīng)的權(quán)限以后,方可下載或上傳文件。也就是說,要想同哪一臺(tái)計(jì)算機(jī)傳送文件,就必須具有哪一臺(tái)計(jì)算機(jī)的適當(dāng)授權(quán)。換言之,除非有用戶ID和口令,否則便無法傳送文件。這種情況違背了Internet的開放性,Internet上的FTP主機(jī)何止千萬,不可能要求每個(gè)用戶在每一臺(tái)主機(jī)上都擁有帳號(hào)。匿名FTP就是為解決這個(gè)問題而產(chǎn)生的。匿名FTP是這樣一種機(jī)制,用戶可通過它連接到遠(yuǎn)程主機(jī)上,并從其下載文件,而無需成為其注冊(cè)用戶。系統(tǒng)管理員建立了一個(gè)特殊的用戶ID,名為anonymous,Internet上的任何人在任何地方都可使用該用戶ID。通過FTP程序連接匿名FTP主機(jī)的方式同連接普通FTP主機(jī)的方式差不多,只是在要求提供用戶標(biāo)識(shí)ID時(shí)必須輸入anonymous,該用戶ID的口令可以是任意的字符串。習(xí)慣上,用自己的E-mail地址作為口令,使系統(tǒng)維護(hù)程序能夠記錄下來誰在存取這些文件。值得注意的是,匿名FTP不適用于所有Internet主機(jī),它只適用于那些南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)2提供了這項(xiàng)服務(wù)的主機(jī)。當(dāng)遠(yuǎn)程主機(jī)提供匿名FTP服務(wù)時(shí),會(huì)指定某些目錄向公眾開放,允許匿名存取。系統(tǒng)中的其余目錄則處于隱匿狀態(tài)。作為一種安全措施,大多數(shù)匿名FTP主機(jī)都允許用戶從其下載文件,而不允許用戶向其上傳文件,也就是說,用戶可將匿名FTP主機(jī)上的所有文件全部拷貝到自己的機(jī)器上,但不能將自己機(jī)器上的任何一個(gè)文件拷貝至匿名FTP主機(jī)上。即使有些匿名FTP主機(jī)確實(shí)允許用戶上傳文件,用戶也只能將文件上傳至某一指定上傳目錄中。隨后,系統(tǒng)管理員會(huì)去檢查這些文件,他會(huì)將這些文件移至另一個(gè)公共下載目錄中,供其他用戶下載,利用這種方式,遠(yuǎn)程主機(jī)的用戶得到了保護(hù),避免了有人上傳有問題的文件,如帶病毒的文件。作為一個(gè)Internet用戶,可通過FTP在任何兩臺(tái)Internet主機(jī)之間拷貝文件。但是,實(shí)際上大多數(shù)人只有一個(gè)Internet帳戶,F(xiàn)TP主要用于下載公共文件,例如共享軟件、各公司技術(shù)支持文件等。Internet上有成千上萬臺(tái)匿名FTP主機(jī),這些主機(jī)上存放著數(shù)不清的文件,供用戶免費(fèi)拷貝。實(shí)際上,幾乎所有類型的信息,所有類型的計(jì)算機(jī)程序都可以在Internet上找到。這是Internet吸引我們的重要原因之一。1.3總體設(shè)計(jì)我將利用Serv-UFTPServer軟件搭建一個(gè)FTP服務(wù)器,使其具有基本的FTP服務(wù)器功能,同時(shí)再進(jìn)行進(jìn)一步完善FTP服務(wù)器架設(shè),在原有基礎(chǔ)上增加功能,同時(shí)我還將利用基于VisualC++的SOCKET編程完成的FTP客戶端的搭建,使之能夠與服務(wù)器進(jìn)行通信測(cè)試、文件互傳。并進(jìn)一步完善FTP客戶端程序,在原有的基礎(chǔ)上達(dá)到課題要求功能南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)3第二章FTP協(xié)議與原理FTP(FileTransferProtocol)是文件傳輸協(xié)議的簡(jiǎn)稱。直到1994年,當(dāng)一樣最廣泛應(yīng)用的Internet客戶程序。它被用于作為訪問Internet主機(jī)文件的一個(gè)遠(yuǎn)程外殼。使用FTP可以連接到一個(gè)FTP服務(wù)器,在可用的目錄間游歷,并一個(gè)FTP站點(diǎn)可以是公用的,私有的,或者兩者兼有之。使用一個(gè)私有的賬號(hào),你可以擁有訪問整個(gè)網(wǎng)絡(luò)的目錄結(jié)構(gòu),或者只是特定的區(qū)域權(quán)限。Internet同時(shí)也是一個(gè)擁有很多允許任何人連接和傳輸文件的FTP服務(wù)器的中心,不管他們有沒有主機(jī)上的賬號(hào)。這叫做匿名FTP。當(dāng)你登錄到一個(gè)匿名FTP站點(diǎn)時(shí),你通常使用“anonymous”作為你的用戶名,“guest”或你的e-mail地址作為密碼。例如,匿名FTP經(jīng)常用于發(fā)布大量的公用領(lǐng)域或共享軟件。其中一個(gè)著名的公用FTP站點(diǎn)是。FTP的主要設(shè)計(jì)目的是用于程序之中,不過FTP程序自身已經(jīng)成為任何一個(gè)TCP/IP實(shí)施的重要部分。當(dāng)你在Windows3.11、Windows95或WindowsNT中使用Netscape和其它的瀏覽器中,因此你可以使用瀏覽Web的程序同時(shí)瀏覽FTP一般來說.用戶聯(lián)網(wǎng)的首要目的就是實(shí)現(xiàn)信息共享,文件傳輸是信息共享非常重要的一個(gè)內(nèi)容之一。Internet上早期實(shí)現(xiàn)傳輸文件,并不是一件容易的事,我們知道Internet是一個(gè)非常復(fù)雜的計(jì)算機(jī)環(huán)境,有PC,有工作站,有MAC,有大型機(jī),據(jù)統(tǒng)計(jì)連接在Internet上的計(jì)算機(jī)已有上千萬臺(tái),而這些計(jì)算機(jī)可能運(yùn)行不同的操作系統(tǒng),有運(yùn)行Unix的服務(wù)器,也有運(yùn)行Dos、Windows的PC機(jī)和運(yùn)行MacOS的蘋果機(jī)等等,而各種操作系統(tǒng)之間的文件交流問題,需要建立一個(gè)統(tǒng)一的文件傳輸協(xié)議,這就是所謂的FTP。基于不同的操作系統(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議,這樣用戶就可以把自己的文件傳送給別人,或者從其它的用戶環(huán)境中獲得文件。與大多數(shù)Internet服務(wù)一樣,F(xiàn)TP也是一個(gè)客戶機(jī)/服務(wù)器系統(tǒng)。用戶通過一個(gè)支持FTP協(xié)議的客戶機(jī)程序,連接到在遠(yuǎn)程主機(jī)上的FTP服務(wù)器程序。用戶通過客戶機(jī)程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機(jī)。比如說,用戶發(fā)出一條命令,要求服務(wù)器向用戶傳送某一個(gè)文件的一份拷貝,服務(wù)器會(huì)響應(yīng)這條命令,將指定文件送至用戶的機(jī)器上??蛻魴C(jī)程序代表用戶接收到這個(gè)文件,將其存放在用戶目錄中。南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)42.2.1FTP工作原理FTP是TCP/IP的一種具體應(yīng)用,它工作在OSI模型的第七層,TC四層上,即應(yīng)用層,使用TCP傳輸而不是UDP,這樣FTP客戶在和服務(wù)器建立連接前就要經(jīng)過一個(gè)被廣為熟知的“三次握手”的過程,它帶來的意義在于客戶與服務(wù)器之間的連接是可靠的,而且是面向連接,為數(shù)據(jù)的傳輸提供了可靠的保證。采用FTP協(xié)議可使Internet用戶高效地從網(wǎng)上的FTP服務(wù)器下載大信息量的數(shù)據(jù)文件,將遠(yuǎn)程主機(jī)上的文件拷貝到自己的計(jì)算機(jī)上。以達(dá)到資源共享和傳遞信息的目的。由于FTP的使用使得Internet上出現(xiàn)大量為用戶提供的下載服務(wù)器。Internet成為了一個(gè)巨型的軟件倉庫。FTP在文件傳輸中還支持?jǐn)帱c(diǎn)續(xù)傳功能,可以大幅度地減小CPU和網(wǎng)絡(luò)帶寬的開銷。2.2.2FTP服務(wù)器登錄方式的分類我們已經(jīng)知道FTP服務(wù)實(shí)際上就是將各種可用資源放在各個(gè)FTP主機(jī)中,網(wǎng)絡(luò)上的用戶可以通過Internet聯(lián)到這些主機(jī)上,并且使用FTP(文件傳送協(xié)議)將想要的文件拷回到自己的計(jì)算機(jī)中。在使用FTP傳送文件之前,最主要的步驟就是如何聯(lián)入各Internet上的FTP服務(wù)器。聯(lián)入的主要步驟也就是登錄(Login)的過程。通常用戶在欲下載的FTP服務(wù)器上輸入許可的帳號(hào)(account)和密碼(password),得到該服務(wù)器許可后,即可進(jìn)入。FTP服務(wù)器分為兩種:其一,為一般的FTP服務(wù)器,進(jìn)入這種服務(wù)器時(shí)必須擁有該主機(jī)的帳號(hào)和密其二,為匿名FTP服務(wù)器(稱為anonymousFTP服務(wù)器)登錄此類FTP服務(wù)器時(shí),用戶只要以“guest”或“anonymous”為帳號(hào),并以自己的E-mail地址為密碼,即可進(jìn)入該FTP服務(wù)器主機(jī),任意瀏覽和下載文件。當(dāng)用戶登錄到某個(gè)FTP服務(wù)器時(shí),如果用“guest”或“anonymous”為帳號(hào),均無法進(jìn)入,則表明該服務(wù)器不是匿名FTP服務(wù)器。實(shí)際上,匿名FTP只是FTP中的一種,它是一種開放式帳號(hào)的FTP服務(wù)器,它可以為網(wǎng)絡(luò)上的任何使用者所利用,與非匿名的FTP不同的只是登錄時(shí)的帳號(hào)為“anonymous”,而密碼為任一用戶的E-mail地址?,F(xiàn)在,某些站點(diǎn)還明確要求使用電子郵件地址作為匿名用戶密碼,而不接受“guest”這樣的密碼。提供電子郵件地址,有助于讓站點(diǎn)的擁有者了解到是哪些人在使用他們的服務(wù)。2.2.3FTP運(yùn)行原理FTP的工作原理與其他許多網(wǎng)絡(luò)實(shí)用程序一樣,也是基于客戶/服務(wù)器模式。互聯(lián)網(wǎng)文件傳輸協(xié)議(FileTransferProtocol)標(biāo)準(zhǔn)是在FTC959說明的。該協(xié)議定義了一個(gè)在遠(yuǎn)程計(jì)算機(jī)系統(tǒng)和本地計(jì)算機(jī)系統(tǒng)之間傳輸文件的標(biāo)準(zhǔn)。一般來說,要傳輸文件的用戶需先經(jīng)過認(rèn)證以后才能登錄ftp服務(wù)器,訪問在遠(yuǎn)程服務(wù)南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)的交互。就模型而言,從1973年以來并沒有什么變化。如圖2.1所示。表2.2交互元素列表軟件要素名稱應(yīng)用說明用戶接口提供了一個(gè)用戶接口并使用客戶端協(xié)議解釋器的服務(wù)USERPJ客戶端協(xié)議解釋器,向遠(yuǎn)程服務(wù)器協(xié)議機(jī)發(fā)送命令并且驅(qū)動(dòng)客戶傳輸過程UPTP客戶端數(shù)據(jù)傳輸協(xié)議,負(fù)責(zé)實(shí)現(xiàn)與遠(yuǎn)端服務(wù)器進(jìn)行數(shù)據(jù)傳輸,并與客戶端本地文件系統(tǒng)交互服務(wù)器協(xié)議解釋器,響應(yīng)客戶協(xié)議機(jī)發(fā)出的命令,并驅(qū)動(dòng)服務(wù)器端數(shù)據(jù)傳輸過程服務(wù)器數(shù)據(jù)傳輸協(xié)議負(fù)責(zé)和客戶進(jìn)行數(shù)據(jù)傳輸以及服務(wù)器端文件系統(tǒng)通信PI之間的連接一般被稱作控制連接(controlconnection),DTP之間的連接被稱作數(shù)據(jù)連接(dataftp服務(wù)器監(jiān)聽端口號(hào)21來等待控制連接建立請(qǐng)求,當(dāng)客戶連接請(qǐng)求到達(dá),會(huì)在客戶和ftp服務(wù)器之間建立一個(gè)控制連接。而數(shù)據(jù)連接端口號(hào)的選擇依賴于控制連接上的命令,通常是客戶發(fā)送一個(gè)控制消息來指定客戶需要建立一個(gè)數(shù)據(jù)連接來傳輸ftp數(shù)據(jù)(如下載/上載一個(gè)文件,顯示當(dāng)前目錄的內(nèi)容等等,都需要建立南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)6數(shù)據(jù)連接來傳輸數(shù)據(jù)),在該消息中,指定了客戶監(jiān)聽并等待連接的端口號(hào),而服務(wù)器從控制連接收到該命令,向客戶端發(fā)起一個(gè)連接請(qǐng)求到消息中指定的端口號(hào),客戶端收到該請(qǐng)求以后就會(huì)建立一個(gè)數(shù)據(jù)連接。連接建立以后,服務(wù)器或客戶就會(huì)主動(dòng)通過該連接發(fā)送數(shù)據(jù)(可能是要傳輸?shù)奈募?,也可能是用戶在命令行上發(fā)出的IS命令的輸出)。一個(gè)完整的FTP文件傳輸需要建立兩種類型的連接,一種為文件傳輸下命令,稱為控制連接,另一種實(shí)現(xiàn)真正的文件傳輸,稱為數(shù)據(jù)連接。1.控制連接客戶端希望與FTP服務(wù)器建立上傳下載的數(shù)據(jù)傳輸時(shí),它首先向服務(wù)器的TCP21端口發(fā)起一個(gè)建立連接的請(qǐng)求,F(xiàn)TP服務(wù)器接受來自客戶端的請(qǐng)求,完成連接的建立過程,這樣的連接就稱為FTP控制連接。2.數(shù)據(jù)連接FTP控制連接建立之后,即可開始傳輸文件,傳輸文件的連接稱為FTP數(shù)據(jù)連接。FTP數(shù)據(jù)連接就是FTP傳輸數(shù)據(jù)的過程,它有兩種傳輸模式:主動(dòng)傳輸模式(Active)和被動(dòng)傳輸模式(PASSIVE),如圖2.3所示。FTPDataConnectionInitationServerFTPDataConngctionthitationHighServer圖2.3主動(dòng)傳輸模式和被動(dòng)傳輸模式1)主動(dòng)傳輸模式當(dāng)FTP的控制連接建立,客戶提出目錄列表、傳輸文件時(shí),客戶端發(fā)出PORT命令與服務(wù)器進(jìn)行協(xié)商,F(xiàn)TP服務(wù)器使用一個(gè)標(biāo)準(zhǔn)端口20作為服務(wù)器端的數(shù)據(jù)連接端口(ftp-data),與客戶建立數(shù)據(jù)連接。端口20只用于連接源地址是服務(wù)器南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)7端的情況,并且端口20沒有監(jiān)聽進(jìn)程來監(jiān)聽客戶請(qǐng)求。在主動(dòng)傳輸模式下,F(xiàn)TP的數(shù)據(jù)連接和控制連接方向相反,由服務(wù)器向客戶端發(fā)起一個(gè)用于數(shù)據(jù)傳輸?shù)倪B接??蛻舳说倪B接端口由服務(wù)器端和客戶端通過協(xié)商確定。主動(dòng)傳輸模式下,F(xiàn)TP服務(wù)器使用20端口與客戶端的暫時(shí)端口進(jìn)行連接,并傳輸數(shù)據(jù),客戶端只是處于接收狀態(tài)。2)被動(dòng)傳輸模式當(dāng)FTP的控制連接建立,客戶提出目錄列表、傳輸文件時(shí),客戶端發(fā)送PASV命令使服務(wù)器處于被動(dòng)傳輸模式,F(xiàn)TP服務(wù)器等待客戶與其聯(lián)系。FTP服務(wù)器在非20端口的其它數(shù)據(jù)傳輸端口上監(jiān)聽客戶請(qǐng)求。在被動(dòng)傳輸模式下,F(xiàn)TP的數(shù)據(jù)連接和控制連接方向一致,由客戶端向服務(wù)器發(fā)起一個(gè)用于數(shù)據(jù)傳輸?shù)倪B接。客戶端的連接端口是發(fā)起該數(shù)據(jù)連接請(qǐng)求時(shí)使用的端口。當(dāng)FTP客戶在防火墻之外訪問FTP服務(wù)器時(shí),需要使用被動(dòng)傳輸模式。被動(dòng)傳輸模式下,F(xiàn)TP服務(wù)器打開-個(gè)暫態(tài)端口等待客戶端對(duì)其進(jìn)行連接,并傳輸數(shù)據(jù),服務(wù)器并不參與數(shù)據(jù)的主動(dòng)傳輸,只是被動(dòng)接受。南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)8第三章開發(fā)環(huán)境及工具介紹3.1C語言及VC++概述C語言是在70年代初創(chuàng)建的一種計(jì)算機(jī)語言,它既有匯編語言可以直接訪問機(jī)器硬件的功能,又具有高級(jí)語言面向用戶、可讀性好和易于記憶的優(yōu)點(diǎn),因此受到廣大程序員的歡迎。C是一種結(jié)構(gòu)化的程序設(shè)計(jì)語言。它由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成,便于實(shí)現(xiàn)由上到下、逐步細(xì)化的結(jié)構(gòu)化程序設(shè)計(jì)。因此,用C編寫的程序具有容易理解和便于維護(hù)的優(yōu)點(diǎn)。C語言的函數(shù)結(jié)構(gòu)有利于程序分割為相對(duì)獨(dú)立的功能模塊,為大型軟件實(shí)現(xiàn)模塊化的程序設(shè)計(jì)創(chuàng)造了條件。C沒有依賴于硬件的輸入和主、輸出語句,因此用它編制的程序有較好的可移植性。C語言首先在Unix操作系統(tǒng)中得到了應(yīng)用,由于它的這些優(yōu)點(diǎn)很快成為當(dāng)前應(yīng)用最為廣泛C語言的優(yōu)點(diǎn)有:(1)簡(jiǎn)潔緊湊、靈活方便C語言一共只有32個(gè)關(guān)鍵字,9種控制語句,程序書寫形式自由,區(qū)分大小寫。把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。C語言可以像匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。(2)運(yùn)算符豐富C語言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C語言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C語言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語言中難以實(shí)現(xiàn)的運(yùn)算。(3)數(shù)據(jù)類型豐富C語言的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。(4)C是結(jié)構(gòu)式語言結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂谩⒕S護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)9MicrosoftVisualC++是Microsoft公司推出的開發(fā)Win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不但具有程序框架自動(dòng)生成、靈活方便的類管理、代碼編寫和界面設(shè)計(jì)集成交互操作、可開發(fā)多種程序等優(yōu)點(diǎn),而且通過簡(jiǎn)單的設(shè)置就可使其生成的程序框架支持?jǐn)?shù)據(jù)庫接口、OLE2,WinSock網(wǎng)絡(luò)、3D控制界面。它以擁有“語法高亮”,IntelliSense(自動(dòng)編譯功能)以及高級(jí)除錯(cuò)功能而著稱。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動(dòng)正在調(diào)試的程序。其編譯及建置系統(tǒng)以預(yù)編譯頭文件、最小重建功能及累加連結(jié)著稱。這些特征明顯縮短程式編輯、編譯及連結(jié)的時(shí)間花費(fèi),在大型軟件計(jì)劃上尤其顯著。VisualC++6.0是微軟公司于1998年推出的。它的最大優(yōu)點(diǎn)就是提供了功能強(qiáng)大的MFC類庫,MFC是一個(gè)很大的C++類層次結(jié)構(gòu),其中封裝了大量的類及其函數(shù),很多Windows程序所共有的標(biāo)準(zhǔn)內(nèi)容可以由MFC的類來提供,MFC類為這些內(nèi)容提供了用戶接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法,程序員所要做的就是通過預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個(gè)輪廓,這將簡(jiǎn)化編程工作大大的減少程序員編寫的代碼數(shù)量,使編程工作變得更加輕松容易。3.1.3VC++6.0集成開發(fā)環(huán)境VisualC++提供了一個(gè)集源程序編輯、代碼編譯與調(diào)試于一體的開發(fā)環(huán)境,這個(gè)環(huán)境稱為集成開發(fā)環(huán)境,對(duì)于集成開發(fā)環(huán)境的熟悉程度直接影響程序設(shè)計(jì)的效率。開發(fā)環(huán)境是程序員同VisualC++的交互界面,通過它程序員可以訪問C++源代碼編輯器、資源編輯器,使用內(nèi)部調(diào)試器,并且可以創(chuàng)建工程文件。MicrosoftVisualC++是多個(gè)產(chǎn)品的集成。VisualC++從本質(zhì)上講是一個(gè)Windows應(yīng)用程序。VisualC++有兩個(gè)版本,對(duì)于每一個(gè)版本,都有對(duì)應(yīng)的文檔。1)專業(yè)版本,它包括一個(gè)更高級(jí)的優(yōu)化編譯器,更廣泛的文檔,并能設(shè)計(jì)基2)標(biāo)準(zhǔn)版本,其費(fèi)用較低,沒有那么高級(jí)的編譯器,文檔較少,且不能設(shè)計(jì)MFC(MicrosoftFoundationClass)庫是Microsoft為利用VC++開發(fā)的Windows應(yīng)用程序而提供的應(yīng)用程序框架,在這個(gè)框架的支持下,對(duì)于不同的應(yīng)用程序,編程的主要任務(wù)是填寫各自特殊部分的代碼,MFC由于某種原因130多個(gè)類組成,這些類封裝了兩千多個(gè)API函數(shù)。MFC類庫主要包括兩類,一組是一般用途類,它提供了許多有用的抽象類,如Cfile類代表文件;CWnd類是窗口類,這些在Windows的編程中有重要的作用。另一類是OLE類,這一類專門用于OLE的編程。使用MFC的優(yōu)點(diǎn)很多,主要的優(yōu)點(diǎn)如下:南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)1)用類編程,將代碼和數(shù)據(jù)封裝在類中,大大減少了編程的復(fù)雜性。2)通過繼承實(shí)現(xiàn)了基本的代碼重用。在MFC中定義了大量類,所以可以在編程中通過繼承來使用這些類,另外,MFC還在這些類中定義了大量的虛函數(shù),也就是說,對(duì)于這些函數(shù),不但可以保存它們?cè)械奶匦?,還可以對(duì)這些函數(shù)進(jìn)行修改,使之具有新的特性。3)提供了大量的工具方便編程。在MFC中,可以使用AppWizard(應(yīng)用程序向?qū)?,來建立應(yīng)用程序的框架,可以使用ClassWizard(類向?qū)?在程序中添加類、變量以及在程序中傳遞各種信息。用ControlWiard(控件向?qū)?創(chuàng)建可以在Windows4)借助設(shè)計(jì)良好的類庫通??梢詼p少代碼規(guī)模。Serv-U是目前眾多的FTP服務(wù)器軟件之一。通過使用Serv-U,用戶能夠?qū)⑷魏我慌_(tái)PC設(shè)置成一個(gè)FTP服務(wù)器,這樣,用戶或其他使用者就能夠使用FTP協(xié)議,通過在同一網(wǎng)絡(luò)上的任何一臺(tái)PC與FTP服務(wù)器連接,進(jìn)行文件或目錄的復(fù)制,移動(dòng),創(chuàng)建,和刪除等。這里提到的FTP協(xié)議是專門被用來規(guī)定計(jì)算機(jī)之間進(jìn)行文件傳輸?shù)臉?biāo)準(zhǔn)和規(guī)則,正是因?yàn)橛辛讼馞TP這樣的專門協(xié)議,才使得人們能夠通過不同類型的計(jì)算機(jī),使用不同類型的操作系統(tǒng),對(duì)不同類型的文件進(jìn)行相互雖然目前FTP服務(wù)器端的軟件種類繁多,相互之間各有優(yōu)勢(shì),但是Serv-U憑借其獨(dú)特的功能得以展露頭腳。具體來說,Serv-U能夠提供以下功能:1)符合windows標(biāo)準(zhǔn)的用戶界面友好親切,易于掌握。2)支持實(shí)時(shí)的多用戶連接,支持匿名用戶的訪問;3)通過限制同一時(shí)間最大的用戶訪問人數(shù)確保PC的正常運(yùn)轉(zhuǎn)。4)安全性能出眾。在目錄和文件層次都可以設(shè)置安全防范措施。5)能夠?yàn)椴煌脩籼峁┎煌O(shè)置,支持分組管理數(shù)量眾多的用戶。6)可以基于IP對(duì)用戶授予或拒絕訪問權(quán)限。7)支持文件上傳和下載過程中的斷點(diǎn)續(xù)傳。8)支持擁有多個(gè)IP地址的多宿主站點(diǎn)。9)能夠設(shè)置上傳和下載的比率,硬盤空間配額,網(wǎng)絡(luò)使用帶寬等,從而能夠保證用戶有限的資源不被大量的FTP訪問用戶所消耗。10)可作為系統(tǒng)服務(wù)后臺(tái)運(yùn)行。11)可自用設(shè)置在用戶登錄或退出時(shí)的顯示信息,支持具有UNIX風(fēng)格的外部鏈接。所謂socket通常也稱作"套接字",應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)包中。ServerSocket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時(shí)使用的。在連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會(huì)話。對(duì)于一個(gè)網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有差別,不因?yàn)樵诜?wù)器端或在客戶端而產(chǎn)生不同級(jí)別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。Socket通訊機(jī)制是一種較原始的通訊機(jī)制,通過Socket的數(shù)據(jù)表現(xiàn)出來的形式是原始字節(jié)流信息,通訊雙方只要在此基礎(chǔ)上按照雙方約定方式進(jìn)行數(shù)據(jù)的格式化和解析處理工作,這樣才能完成具體的應(yīng)用,即實(shí)現(xiàn)某種協(xié)議的過程。Socket可以看成是在兩個(gè)程序間進(jìn)行通訊連接的兩個(gè)端點(diǎn),一個(gè)程序?qū)⒁欢涡畔懭胍粋€(gè)Socket中,該Socket將這段信息發(fā)送給另外一個(gè)Socket,以便使這段信息能傳達(dá)到其他程序中。圖3.1是Socket的工作原理圖。Socket有兩種主要的工作方式:有連接的和無連接的。有連接方式如流通訊;無連接方式如數(shù)據(jù)包方式。有連接的Socket操作就像一部電話。它們必須建立一個(gè)連接和一個(gè)呼叫。所有的事情在到達(dá)時(shí)的順序與它們出發(fā)時(shí)的順序一樣。南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)第四章FTP服務(wù)器的構(gòu)建與應(yīng)用首先,需選擇好開發(fā)工具,設(shè)想好程序?qū)⒁獙?shí)現(xiàn)的大體功能后,我們就要分析該程序所需的條件,對(duì)該程序中將要遇到的問題做一下準(zhǔn)備工作,以便于以后其次,要根據(jù)我們想要在局域網(wǎng)內(nèi)進(jìn)行文件傳輸?shù)囊螅驗(yàn)楸境绦蛞獙?shí)現(xiàn)的是FTP服務(wù)器的構(gòu)建與應(yīng)用,所以我要在搭建好服務(wù)器的同時(shí),配上相應(yīng)的FTP客戶端,以實(shí)現(xiàn)其應(yīng)用。具體還有:(1)客戶端接口與服務(wù)器接口對(duì)接的問題。只有使用相同的接口才能順利實(shí)現(xiàn)對(duì)接。我打算采用FTP默認(rèn)的21接口。(2)FTP客戶端的功能實(shí)現(xiàn)。本客戶端可以實(shí)現(xiàn)FTP客戶的基功能。當(dāng)鏈接成功后,可以順利實(shí)現(xiàn)資料的上傳、下載、以及資料路徑的查詢等。(3)FTP客戶端的美化。由于MFC的界面相對(duì)單一,界面基本為最原始界面,所以對(duì)客戶端軟件的美化也是十分必要的。4.2功能分析在做程序之前,我們要先確定本程序的功能,只有確定了功能,才能確定程序中使用什么函數(shù)來實(shí)現(xiàn)。如果想在局域網(wǎng)內(nèi)進(jìn)行文件傳輸,首先要有服務(wù)器端和客戶端,兩者配合使用。先打開客戶端和服務(wù)器,然后讓客戶登陸一下服務(wù)器,服務(wù)器端設(shè)制一下服務(wù)器所完成的功能,然后客戶端再向服務(wù)器發(fā)送應(yīng)用請(qǐng)求,以此達(dá)到課題目的。4.3FTP服務(wù)器的搭建從處下載最新FTPServ-UServer(下文簡(jiǎn)稱Serv-U),然后把它安裝到計(jì)算機(jī),操作步驟如下:(1)雙擊ServUSetup.exe,運(yùn)行Serv-U安裝程序,彈出歡迎窗口,單擊【下南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)安裝向?qū)?安裝向?qū)?Serv-U重要:如果已安裝Servu比較舊的版本,并且未備份數(shù)據(jù)文件;請(qǐng)立即退出本安裝進(jìn)程并備份Serv-U的安裝目錄和數(shù)據(jù)目錄。如果安裝到現(xiàn)有的舊版本目錄中,則將升級(jí)當(dāng)前的安裝的版本。這將保留所有當(dāng)前的設(shè)置。本電腦程序受著作權(quán)法和國際公約的保護(hù)。為鼓勵(lì)今后的開發(fā)工作,請(qǐng)勿散發(fā)您的注冊(cè)碼。謝謝!圖4.1選擇安裝Serv-U程序(2)選擇接受協(xié)議,單擊【下一步】按鈕;安裝向?qū)?安裝向?qū)?Serv-U許可協(xié)議使用本軟件前請(qǐng)閱讀以下條款和條件。一旦使用Sery-Uo,即表明您接受本許可協(xié)議和保證條款。單機(jī)注冊(cè)版Serv-Ue可以由單個(gè)用戶在一臺(tái)電腦上獨(dú)自使用,或安裝到一臺(tái)電腦供多人使用。一份Sery-Us許可不得安裝于多臺(tái)電腦上也ianLHm=Ahhn-wnmrnLm-nnh+◎我接受協(xié)議(A)<上一步(B)下一步M>圖4.2接受安裝協(xié)議(3)選擇安裝路徑,點(diǎn)擊【下一步】按鈕;南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)將ServU安裝到哪里?圖4.3選擇安裝路徑(4)確定安裝路徑及開始菜單后,點(diǎn)擊【安裝】按鈕,進(jìn)行程序安裝;D:\BiShe\Sery-U圖4.4確認(rèn)位置,開始安裝待安裝結(jié)束后,對(duì)Serv-U進(jìn)行基本設(shè)置安裝完Serv-U以后,需要對(duì)此進(jìn)行設(shè)置,才能正式投入使用,首先對(duì)域名與IP地址進(jìn)行設(shè)置,操作步驟如下:(1)倘若是初次安裝,會(huì)彈出如下對(duì)話框,選擇【是】定義新域;南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)圖4.5定義新域(2)輸入域名稱后選擇【下一步】定義新域;域向?qū)б徊襟E1總步驟4域向?qū)б徊襟E1總步驟4區(qū)歡迎使用Serv-U域向?qū)?。本向?qū)椭谖募?wù)器上創(chuàng)建域。每個(gè)域名都是唯一的標(biāo)識(shí)符,用于區(qū)分文件服務(wù)器上的其他域。名稱?啟用域圖4.6輸入新域名稱(3)使用系統(tǒng)默認(rèn)端口,直接點(diǎn)擊【下一步】;域向?qū)?步驟2總步驟4域向?qū)?步驟2總步驟4些協(xié)議,則這些協(xié)議可能無法使用。請(qǐng)選擇域應(yīng)該使用的協(xié)議及其相應(yīng)?ImplictFTPS(SSLTLS)?HTTPS(SSL加密的HTTP80443圖4.7默認(rèn)端口(4)默認(rèn)IP地址監(jiān)聽,直接點(diǎn)擊【下一步】;南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)域向?qū)?步驟3總步驟4域向?qū)?步驟3總步驟4<<所有可用的IPv4地址>><<所有可用的IPv6地址>>?創(chuàng)建IPv6監(jiān)聽器圖4.8默認(rèn)IP地址(5)選擇密碼加密模式,點(diǎn)擊【完成】;域向?qū)в蛳驅(qū)Аげ襟E4總步驟4-密碼加密模式◎使用服務(wù)器設(shè)置(加密:?jiǎn)蜗蚣用?簡(jiǎn)單的雙向加密(不太安全)無加密(不推薦)更改服務(wù)器設(shè)置□允許用戶恢復(fù)密碼完成取消圖4.9密碼加密模式2.創(chuàng)建新賬戶Serv-U已經(jīng)允許匿名用戶登錄,并取得訪問權(quán)限,但最好還是建立一套自己的完整用戶管理制度。(1)選擇【是】創(chuàng)建新用戶賬戶;南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)域中暫無用戶,您現(xiàn)在要為該域創(chuàng)建用戶賬戶嗎?圖4.10創(chuàng)建用戶帳戶(2)選擇使用用戶向?qū)О惭b后,輸入新用戶賬戶的登錄ID,點(diǎn)擊【下一步】;用戶向?qū)?步驟1總步驟4用戶向?qū)?步驟1總步驟4客戶端嘗試登錄文件服務(wù)器時(shí)通過登錄D標(biāo)識(shí)其賬戶。(可選)下一步>取消圖4.11填寫登錄ID(3)設(shè)置登錄密碼,若無密碼可不填,接著點(diǎn)擊【下一步】;(3)設(shè)置登錄密碼,若無密碼可不填,接著點(diǎn)擊【下一步】;用戶向?qū)?步驟2總步驟4兇歡迎使用Serv-U用戶賬戶向?qū)АT撓驅(qū)椭焖賱?chuàng)建新用戶,以訪問您的文件服務(wù)器。用戶必須在下一次登錄時(shí)更改密碼<上一步下一步>取消圖4.12填寫登錄密碼(4)設(shè)置用戶登錄根目錄,若選擇鎖定于根目錄,則其根目錄的地址將被隱南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)藏而只顯示為“/”,設(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)限,有“限制訪問”和“完全訪問”兩項(xiàng)選擇,接著點(diǎ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所示,用戶賬戶列表中多出剛剛新建的賬戶;南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)9i6w)在表體生根進(jìn)戶數(shù)調(diào)案用戶Winacr備證a數(shù)是設(shè)柔時(shí)育根些壟D.@tneFTP向全法:縣都書,過主2小時(shí):學(xué)計(jì)o.按好額正英定行切兩:0日。00142詞產(chǎn)是上行10平:下行:0年8圖4.14用戶賬戶列表如圖4.15所示,服務(wù)器管理者可以對(duì)用戶進(jìn)行統(tǒng)計(jì)、監(jiān)控和管理;文理屋資通上并有城組用產(chǎn)會(huì)藝值察并對(duì)其進(jìn)行置理,丑出重費(fèi)一型個(gè)被接上國被執(zhí)+和們衛(wèi)時(shí)中數(shù)。生體無行時(shí)海0日,00-0804264場(chǎng)1排1*均登錄對(duì)劃2上21.30字節(jié)0發(fā)樣)00CB(03文盛越GPVymgmN4wt#-a主圖4.15用戶活動(dòng)統(tǒng)計(jì)同時(shí)還可以設(shè)定限制等高級(jí)功能,如圖4.16;南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)出伴意本處理社示和50LSS4王要題V安加封附制可以要基在據(jù)務(wù)費(fèi)動(dòng)有型定結(jié)機(jī)。金練冊(cè)(用產(chǎn)稱入要意大本不始對(duì)在何時(shí)而要研一,擺稱一基三要明以,要五任何時(shí)進(jìn)裝響一星響,星班三重期以,要貼五在解市任詞時(shí)間星好一星爬一星納三星構(gòu)己,能形五按養(yǎng)額正某定行明離。0日,001138合道:熱m登過擊24個(gè)粒3十3上行:提學(xué)節(jié):下行:21字帶在何時(shí)年謀賠一面所二墨師三重地算,重五在何時(shí)用要新一重稱二單稱三重期口,要新五低日時(shí)填星的一星期一集婦三星期值,蓋五興擇工Fatwandnsfut美dHTF蓬像排地需預(yù)地bns名壽出對(duì)2圖4.16限制功能設(shè)置Serv-U的功能十分強(qiáng)大,這里就不一一介紹,在用Serv-U軟件搭建好服務(wù)器后,接著是編輯客戶端軟件,以此達(dá)到課題要求。4.4FTP客戶端的搭建本程序是一個(gè)小型FTP客戶端程序。主要實(shí)現(xiàn)的是FTP用戶的登錄、上傳、下載、查詢路徑等,并給出相應(yīng)的提示。程序采用VisualC++6.0開發(fā),基于MFC的WindowsAPI函數(shù)進(jìn)行編程。由于采用了MFC自帶的FTP庫函數(shù)編程,使得在搭建FTP客戶端程序的時(shí)候變得很便捷??蛻舳顺绦虿捎肕FC事件響應(yīng)觸發(fā)機(jī)制,即每按下一個(gè)按鍵便響應(yīng)相應(yīng)的事件去觸發(fā)程序的執(zhí)行??蛻舳酥饕梢韵滤膫€(gè)事件組成:①連接;②查詢;③上傳;④下載。每個(gè)事件已近用類封裝起來獨(dú)立4.4.1連接當(dāng)界面中的連接按鈕被點(diǎn)擊后,會(huì)轉(zhuǎn)向連接的類函數(shù),連接函數(shù)主要調(diào)用WindowsAPI的GetFtpConnection函數(shù)進(jìn)行客戶端程序與FTP服務(wù)器程序之間的GetFtpConnection連接到一個(gè)FTP服務(wù)器,創(chuàng)建并返回指向CFTPConnection對(duì)象的指針。如果函數(shù)調(diào)用錯(cuò)誤的話,可通過檢查產(chǎn)生的CInternetException對(duì)象來確定出錯(cuò)類型。在程序中,如果檢查產(chǎn)生了調(diào)用錯(cuò)誤,則會(huì)在后面的程序中將連接刪除。在信息提示框中會(huì)提示響應(yīng)的連接正確或者錯(cuò)誤信息。其中核心的連接代碼如下所示:南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)if(!pFtpConnect)//IfpFtpConnect=NULL,即需要進(jìn)行的是連接服務(wù)器工作{pFtpConnect=sess.GetFtpConnection(m_strFtp,m_strName,m_strPwd);}catch(CInternetException*pEx)//IfconnecttoFTPs{pFtpConnect=NULL:{pFtpConnect->GetCurrentDirectory(m_strDirectory);//displaydirectoryMyListFile();//更新列表框中的文件列表,程序附在后面}else//需要進(jìn)行斷開服務(wù)器的工作pFtpConnect->Close();pFtpConnect=NULL;UpdateData(false);查詢按鈕被點(diǎn)擊后,轉(zhuǎn)入查詢功能函數(shù),查詢函數(shù)主要調(diào)用WindowsAPI的SetCurrentDirectory成員函數(shù)設(shè)置好后,再調(diào)用GetCurrentDirectory函數(shù)即可得到設(shè)置路徑目錄下的所有文件。核心代碼如下所示:南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)voidCMyFTPDlg::OnButtonFind()//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();if(m_strDirectory!=""){pFtpConnect->SetCurrentDirectory(m_strDirectory);pFtpConnect->GetCurrentDirectory(m_strDirectory);UpdateData(false);1當(dāng)按下界面中的上傳函數(shù)后。程序轉(zhuǎn)向上傳的類函數(shù)中,在這個(gè)函數(shù)中,主要調(diào)用WindowsAPI函數(shù)庫中的PutFile()成員函數(shù)。調(diào)用這個(gè)成員函數(shù)可以把文件保存到FTP服務(wù)器。PutFile()函數(shù)是一個(gè)比較高級(jí)的例程,它可以處理有關(guān)把文件存放到服務(wù)器上的工作。只發(fā)送數(shù)據(jù),或要嚴(yán)格控制文件傳輸?shù)膽?yīng)用程序,應(yīng)該調(diào)用OpenFile和CInternet:Write。利用自己選擇的值來取代dwContext默認(rèn)的值,設(shè)置為上下文標(biāo)識(shí)符,上下文標(biāo)識(shí)符是CInternetSession對(duì)象創(chuàng)建的CFtpConnection對(duì)象的特定操作有關(guān),這個(gè)值返回給CInternetSession::OnStateCallBack,從而把操作的狀態(tài)通報(bào)給它所標(biāo)識(shí)的上下文。核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");}南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)當(dāng)按下界面中的下載按鈕后,主程序進(jìn)入下載的類函數(shù)中,在這個(gè)函數(shù)中,主要以調(diào)用WindowsAPI函數(shù)的GetFile()成員函數(shù)得以實(shí)現(xiàn)。調(diào)用這個(gè)成員函數(shù),可以從FTP服務(wù)器取得文件,并且把文件保存在本地機(jī)器上。GetFile()函數(shù)是一個(gè)比較高級(jí)的例程,它可以處理所有有關(guān)從FTP服務(wù)器讀FILE_TRANSFER_TYPE_ASCI,文件數(shù)據(jù)的傳輸也會(huì)把控制和格式符轉(zhuǎn)化為Windows中的等階符號(hào)。默認(rèn)的傳輸模式是二進(jìn)制模式,文件會(huì)以和服務(wù)器上相同的格式被下載。pstrRemoteFile和pstrLocalFile可以是相對(duì)于當(dāng)前目錄的部分文件名,也可以是全文件名,在這兩個(gè)名字中間,都既可以用反斜杠(1)或者正斜杠(1)來作為文件名的目錄分隔符,GetFile()在使用前會(huì)把目錄分隔符轉(zhuǎn)化為適當(dāng)?shù)淖址?梢杂米约哼x擇的值來取代dwContext默認(rèn)的值,設(shè)置為上下文標(biāo)識(shí)符與CInternetSession對(duì)象創(chuàng)建。返回給CInternetSession:OnStatusCallBack的值指出了所標(biāo)識(shí)操作的狀態(tài)。核心代碼如下所示:if(m_strFile!="")//m_strFile為選中的列表項(xiàng){if(m_strFile.Right(5)=="<DIR>")MessageBox("Unabletodownloaddirectory");{CFileDialogldFile(FALSE,NULL,m_strFile);//false類型對(duì)話框?yàn)楸4嫖募?duì)話框if(ldFile.DoModal()==IDOK)if(!pFtpConnect->GetFile(m_strFile,ldFile.GetFileName)))MessageBox("Errorgettingfile");{南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)程序完成后。界面如圖4.17所示:下載南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)第五章系統(tǒng)測(cè)試5.1測(cè)試過程首先,因?yàn)閯?chuàng)建的是服務(wù)器和客戶端,所以先打開自己的服務(wù)器,查看服務(wù)器是否能夠運(yùn)行,同時(shí)查看已添加賬戶情況。如圖5.1所示:anonymouszero0915全名其次,當(dāng)看到賬戶成功運(yùn)行后,查看電腦的IP地址作為登錄服務(wù)器的IP地以太網(wǎng)適配器本地連接:默認(rèn)網(wǎng)關(guān).圖5.2IP地址查看再打開客戶端,輸入IP地址和帳號(hào)、密碼,實(shí)現(xiàn)客戶端與服務(wù)器端的登錄。南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)Files<DIR>退出上傳圖5.3客戶端的登錄當(dāng)與服務(wù)器成功連接后,進(jìn)行下載、上傳文件測(cè)試,觀察下載、上傳文件是否正常,同時(shí)可測(cè)試路徑查詢功能。另仔內(nèi)產(chǎn)圍庫保存類型():FTP_Down圖5.4下載對(duì)話框南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)盤盤取消庫文件名:圖5.5上傳對(duì)話框經(jīng)測(cè)試,客戶端服務(wù)器均順利運(yùn)行,如圖5.6所示。同時(shí),匿名登錄也測(cè)試nnunnu慧文理服資推上并面城到用產(chǎn)會(huì)藝級(jí)整并對(duì)其進(jìn)行管理,日出發(fā)進(jìn)一型小根排上國8*MH6=k繁單地上工全3(有2過24小時(shí)2:e+1上行*行0節(jié)tnn上一圖5.6服務(wù)器活動(dòng)狀態(tài)查詢經(jīng)測(cè)試,服務(wù)器與客戶端運(yùn)行正常,各功能使用正常,均可順利運(yùn)行,達(dá)到南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)預(yù)期目的。測(cè)試成功。5.3測(cè)試出現(xiàn)的問題和不足測(cè)試過程中,未發(fā)現(xiàn)問題。只是客戶端的界面還是稍顯簡(jiǎn)陋,功能也相對(duì)單一,希望能夠在日后加以完善!南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)是本科學(xué)習(xí)階段一次非常難得的理論與實(shí)際相結(jié)合的機(jī)會(huì),通過這次比較完整的小型FTP系統(tǒng)設(shè)計(jì),我擺脫了單純的理論知識(shí)學(xué)習(xí)狀態(tài),而實(shí)際設(shè)計(jì)的結(jié)合鍛煉了我的綜合運(yùn)用所學(xué)的專業(yè)基礎(chǔ)知識(shí),解決實(shí)際工程問題的能力,同時(shí)也提高我查閱文獻(xiàn)資料、設(shè)計(jì)手冊(cè)、設(shè)計(jì)規(guī)范以及電腦能力水平,而且通過對(duì)整體的掌控,對(duì)局部的取舍,以及對(duì)細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗(yàn)得到了豐富,這是我們都希望看到的也正是我們進(jìn)行畢業(yè)設(shè)計(jì)的目的所雖然畢業(yè)設(shè)計(jì)內(nèi)容繁多,過程繁瑣但我的收獲卻更加豐富。以前我對(duì)VC++了解不明確,但是現(xiàn)在我了解了VC++的運(yùn)行環(huán)境,使用方法,以及一些命令的使用。以往編程時(shí),不注意編程規(guī)范,致使程序運(yùn)行不出來,現(xiàn)在在編寫程序時(shí)很注意編寫規(guī)范,以前一些控件不會(huì)使用,現(xiàn)在也都可以熟練使用了,在設(shè)計(jì)過程中一些功能的實(shí)現(xiàn)讓我很頭痛,原因是由于本身設(shè)計(jì)受到編程語言的限制,而又必須考慮本專業(yè)的一些要求規(guī)范,從而形成了一些矛盾點(diǎn),這些矛盾在處理上讓人很難斟酌,正是基于這種考慮我意識(shí)到,要想更完美的進(jìn)行一次設(shè)計(jì),與他人的交流溝通是很有必要的。提高是有限的但提高也是全面的,正是這一次設(shè)計(jì)讓我積累了無數(shù)實(shí)際經(jīng)驗(yàn),使我的頭腦更好的被知識(shí)武裝了起來,也必然會(huì)讓我在未來的工作學(xué)習(xí)中表現(xiàn)出更高的應(yīng)變能力,更強(qiáng)的溝通力和理解力。順利如期的完成本次畢業(yè)設(shè)計(jì)給了我很大的信心,讓我了解專業(yè)知識(shí)的同時(shí)也對(duì)本專業(yè)的發(fā)展前景充滿信心,今后我更會(huì)關(guān)注新項(xiàng)目開發(fā),并爭(zhēng)取盡快的掌握這些先進(jìn)的知識(shí),更好的為祖國的四化服務(wù)。南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)四年的大學(xué)生活轉(zhuǎn)眼就要結(jié)束了,在即將畢業(yè)之際,為了考驗(yàn)我們四年來所學(xué)知識(shí)的成果,以及加強(qiáng)我們分析解決計(jì)算機(jī)應(yīng)用實(shí)際問題的能力和培養(yǎng)我們調(diào)查研究、查閱技術(shù)文獻(xiàn)、資料、手冊(cè)以及編寫技術(shù)文獻(xiàn)的能力,學(xué)校安排我們這次畢業(yè)設(shè)計(jì)。通過這次畢業(yè)設(shè)計(jì),我們各方面都得到了很好的鍛煉。本課題在選題及研究過程中得到許嵐老師的悉心指導(dǎo),許老師多次詢問研究進(jìn)程,并為我指點(diǎn)迷津,幫助我開拓研究思路,精心點(diǎn)撥、熱忱鼓勵(lì)。許老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,踏踏實(shí)實(shí)的精神,不僅授我以文,而且教我做人,雖歷時(shí)不長(zhǎng),卻給以終生受益無窮之道。感謝許老師,··論文的每個(gè)實(shí)驗(yàn)細(xì)節(jié)和每個(gè)數(shù)據(jù),都離不開你的細(xì)心指導(dǎo)。感謝我的室友們,從遙遠(yuǎn)的家來到這個(gè)陌生的城市里,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。四年了,仿佛就在昨天。四年里,我們沒有紅過臉,沒有吵過嘴,沒有發(fā)生上大學(xué)前所擔(dān)心的任何不開心的事情。今后大家要各奔東西,為了自己的前程奮斗,大家珍重。感謝我的高中同學(xué)凌宇,正是你的幫助才使我的畢業(yè)設(shè)計(jì)錦上添花,祝你在研究生階段一切順利。感謝我的爸爸媽媽,焉得諼草,言樹之背,養(yǎng)育之恩,無以回報(bào),你們永遠(yuǎn)健康快樂是我最大的心愿。在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無言的幫助,在這里請(qǐng)接受我誠摯的謝意!最后,謹(jǐn)以此稚嫩的論文獻(xiàn)給所有關(guān)心和幫助過我的老師、親人、同學(xué)、和朋友們。我唯有在以后不斷地努力進(jìn)取,以學(xué)業(yè)和工作的繼續(xù)求索來感謝培育我的母校和所有關(guān)心我的師長(zhǎng)親朋!希望我們都幸福快樂!南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)參考文獻(xiàn)[1]王建新.基于Internet的通信系統(tǒng)虛擬實(shí)驗(yàn)環(huán)境設(shè)計(jì)與實(shí)現(xiàn)[J].中南大學(xué)學(xué)報(bào).2006年4月[2]張婧婧.基于Web和MATLAB的控制系統(tǒng)虛擬實(shí)驗(yàn)室的研究與實(shí)現(xiàn)[J].襄樊學(xué)院學(xué)報(bào).2010年5月[3]李凌云.基于MATLABWeb的網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng)的構(gòu)建[J].南京曉莊學(xué)院學(xué)報(bào).2007年12月[4]任瑞玲.基于Simulink的時(shí)隙交換原理的仿真[J].電氣電子教學(xué)學(xué)報(bào).2004年2月[5]糜正琨.交換技術(shù)[M].北京:清華大學(xué)出版社.2006年7月[6]蔡慧.Matlab仿真結(jié)果顯示技術(shù)的改進(jìn)[J].電氣電子教學(xué)學(xué)報(bào).2009年4月[7]李凌云.基于三層體系結(jié)構(gòu)的網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與開發(fā)[D].浙江師范大學(xué).2006年12月[8]XuHeyuan.RelationshipsAmongNGN,SoftswitchandIMS[J].ZTECommunications.2007年1月[9]ARIANITMARAJ,SKENDERRUGOVA.TheroleofsoftswitchinNGNnetwork[C].DNCOCO'09Proceedingsofthe8thWSEASinternationalconferenceonDatanetworks,communications,computers.2009.南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)(1)FTP客戶端啟動(dòng)程序(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南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)//IIII/H||||/////|///)//Standardinitializa//Ifyouarenotusingthesefeaturesandwishtoreducethesize//CWelcomeWND();Sleep(2500);//主窗口延時(shí)2.5秒#ifdefAFXDLLEnable3dControls()//CallthiswhenusingMFCinasharedDLLEnable3dControlsStatic();//CallthiswhenlinkingtoMFCstatically#endifm_pMainWnd=&dlg;intnResponse=dlg.DoModal();}elseif(nResponse==IDCANCEL){南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)//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);南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)//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//|||||」」」」!」」!!!!」!!!!!!!///]南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)/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)南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)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南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)CDialog::OnPaint();}//ThesystemcallsthistoobtainthecursortodisplaywhiletheuserdragsHCURSORCMyFTPDlg::OnQueryDragIcon(){return(HCURSOR)m_hIcon;}//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();//Getthedatafromscreen//Dowehaveacurrentcoif(!pFtpConnect)//IfpFtpConnect=NULL,即需要進(jìn)行的是連接服務(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//需要進(jìn)行斷開服務(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!=""){南京郵電大學(xué)2007屆本科生畢業(yè)設(shè)計(jì)(論文)if(m_strDirectory.Right(1)!="/")temp=m_strF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技推動(dòng)下的生物質(zhì)能源技術(shù)進(jìn)步
- 上海2024年上海市工人文化宮招聘筆試歷年參考題庫附帶答案詳解
- 社區(qū)消防安全隊(duì)伍建設(shè)與培訓(xùn)計(jì)劃
- 2025浙江嘉興市博思睿招聘27人(派遣至海寧市尖山新區(qū)開發(fā)有限公司)筆試參考題庫附帶答案詳解
- 2025廣西河池市鳳山縣招聘國有企業(yè)領(lǐng)導(dǎo)班子人員考察人選筆試參考題庫附帶答案詳解
- 科技引領(lǐng)中醫(yī)藥在糖尿病視網(wǎng)膜病變中的應(yīng)用
- 二零二五學(xué)年度兒童在校打傷同學(xué)經(jīng)濟(jì)賠償合同
- 2025年度中國人壽校園招聘火熱開啟筆試參考題庫附帶答案詳解
- 二零二五年度汽車充電樁場(chǎng)地租賃與充電設(shè)施維護(hù)協(xié)議
- 二零二五年度山羊養(yǎng)殖收益共享代養(yǎng)協(xié)議
- 小學(xué)機(jī)器人課題報(bào)告
- 《字體設(shè)計(jì)》課程標(biāo)準(zhǔn)
- 圖像生成中的風(fēng)格遷移方法研究
- 醫(yī)療器械臨床試驗(yàn)質(zhì)量管理規(guī)范培訓(xùn)
- 寒假社會(huì)實(shí)踐大學(xué)生返鄉(xiāng)
- 站樁的知識(shí)講座
- 杭州園區(qū)招商規(guī)劃方案
- 【物業(yè)】《維修資金管理與使用》培訓(xùn)課件
- HGT4134-2022 工業(yè)聚乙二醇PEG
- 鋁合金時(shí)效爐安全操作規(guī)程模版
- DB2201T 59-2023 冬季供暖運(yùn)行參數(shù)氣象指標(biāo)及分級(jí)
評(píng)論
0/150
提交評(píng)論