【正文】
優(yōu)點(diǎn)是它為你做了所有最難做的事。每當(dāng)新的 Windows 版本出現(xiàn)時(shí),MFC 也會(huì)得到修改以便使舊的編譯器和代碼能在新的系統(tǒng)中工作。MFC 是一個(gè)很大的、擴(kuò)展了的 C++ 類層次結(jié)構(gòu),它能使開(kāi)發(fā) Windows 應(yīng)用程序變得更加容易。MFC不僅僅是人們通常理解的一個(gè)類庫(kù)。在使用VisualVisualVisual C++ 不僅僅是一個(gè)編譯器。本課題設(shè)計(jì)采用Microsoft Visual C++?,F(xiàn)在的FTP軟件里面包括在IE5以上的版本里面也已經(jīng)支持這兩種模式了。 FTP server必須和客戶端建立一個(gè)新的連接用來(lái)傳送數(shù)據(jù)。 PORT命令包含了客戶端用什么端口接收數(shù)據(jù)。Passive模式FTP的客戶端發(fā)送 PASV命令到 FTP Server。其支持兩種模式,一種方式叫做Standard (也就是 Active,主動(dòng)方式),一種是 Passive (也就是PASV,被動(dòng)方式)。Internet中的有數(shù)目巨大的匿名FTP主機(jī)以及更多的文件,那么到底怎樣才能知道某一 特定文件位于哪個(gè)匿名FTP主機(jī)上的那個(gè)目錄中呢?這正是Archie服務(wù)器所要完成的工作。Internet之所以能延續(xù)到今天,是因?yàn)槿藗兪褂猛ㄟ^(guò)標(biāo)準(zhǔn)協(xié)議提供標(biāo)準(zhǔn)服務(wù)的程序。而且,這一切是免費(fèi)的。這是Internet吸引我們的重要原因之一。 Internet上有成千上萬(wàn)臺(tái)匿名FTP主機(jī),這些主機(jī)上存放著數(shù)不清的文件,供用戶免費(fèi)拷貝。 作為一個(gè)Internet用戶,可通過(guò)FTP在任何兩臺(tái)Internet主機(jī)之間拷貝文件。V隨后,系統(tǒng)管理員會(huì)去檢查這些文件,他會(huì)將這些文件移至另一個(gè)公共下載目錄中,供其他 用戶下載,利用這種方式,遠(yuǎn)程主機(jī)的用戶得到了保護(hù),避免了有人上載有問(wèn)題的文件,如帶病毒的文件。作為一種安全措施,大多數(shù)匿名FTP主機(jī)都允許用戶從其下載文件,而不允許用戶向其上載文件,也 就是說(shuō),用戶可將匿名FTP主機(jī)上的所有文件全部拷貝到自己的機(jī)器上,但不能將自己機(jī)器上的任何一個(gè)文件拷貝至匿名FTP主機(jī)上。當(dāng)遠(yuǎn)程主機(jī)提供匿名FTP服務(wù)時(shí),會(huì)指定某些目錄向公 眾開(kāi)放,允許匿名存取。習(xí)慣上,用自己的Email地址作為口令,使系統(tǒng)維護(hù)程序能夠記錄下來(lái)誰(shuí)在存取這些文件。中國(guó)Web技術(shù)站2v1n)En(o!Iwamp。 匿名FTP是這樣一種機(jī)制,用戶可通過(guò)它連接到遠(yuǎn)程主機(jī)上,并從其下載文件,而無(wú)需成為其注冊(cè)用戶。匿名FTP就是為解決這個(gè)問(wèn)題而產(chǎn)生的。換言之,除非有用戶ID和口令,否則便無(wú)法傳送文件。 使用FTP時(shí)必須首先登錄,在遠(yuǎn)程主機(jī)上獲得相應(yīng)的權(quán)限以后,方可上載或下載文件。rF/E`$D中國(guó)Web技術(shù)站39。下載文件就是從遠(yuǎn)程主機(jī)拷貝文件至自己的計(jì)算機(jī)上;上載文件就是將文件從自己的計(jì)算機(jī)中拷貝至遠(yuǎn)程主機(jī)上。m:c客戶機(jī)程序代表用戶接收到這個(gè)文件,將其存放在用戶目錄中。用戶通過(guò)客戶機(jī)程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機(jī)。中國(guó)Web技術(shù)站| M?Z5g0mq|\G$與大多數(shù)Internet服務(wù)一樣,F(xiàn)TP也是一個(gè)客戶機(jī)/服務(wù)器系統(tǒng)。Internet上早期實(shí)現(xiàn)傳輸文件,并不是一件容易的事, 我們知道 Internet是一個(gè)非常復(fù)雜的計(jì)算機(jī)環(huán)境,有PC,有工作站,有MAC,有大型機(jī),據(jù)統(tǒng)計(jì)連接在Internet上的計(jì)算機(jī)已有上千萬(wàn)臺(tái),而這些計(jì)算 機(jī)可能運(yùn)行不同的操作系統(tǒng), 有運(yùn)行Unix的服務(wù)器,也有運(yùn)行Dos、Windows的PC機(jī)和運(yùn)行MacOS的蘋果機(jī)等等,而各種操作系統(tǒng)之間的文件交流問(wèn)題,需要建立一個(gè)統(tǒng)一的 文件傳輸協(xié)議,這就是所謂的FTP。簡(jiǎn)單地說(shuō),支持FTP協(xié)議的服務(wù)器就是FTP服務(wù)器。字符界面的FTP的命令復(fù)雜、繁多。FTP采用“客戶機(jī)/服務(wù)器”方式,用戶端要在自己的本地計(jì)算機(jī)上安裝FTP客戶程序。以hDz9wb[ i(l*R中國(guó)Web技術(shù)站N GEHv /X1fG4ma8S(l7^4LNvh ?以下傳文件為例,當(dāng)啟動(dòng)FTP從遠(yuǎn)程計(jì)算機(jī)拷貝文件時(shí),事實(shí)上啟動(dòng)了兩個(gè)程序:一個(gè)本地機(jī)上的FTP客戶程序:它向FTP服務(wù)器提出拷貝文件的請(qǐng)求。通過(guò)實(shí)際測(cè)試和應(yīng)用,驗(yàn)證了本文設(shè)計(jì)的正確性??蛻舳嗽O(shè)計(jì)模塊主要有:連接服務(wù)器模塊,上傳文件模塊,下載文件模塊。服務(wù)器端設(shè)計(jì)模塊主要有:服務(wù)器日志模塊,在線用戶模塊,程序設(shè)置模塊 ,統(tǒng)計(jì)模塊,安全模塊。本文采用VC++。FTP服務(wù)與客戶端設(shè)計(jì)摘要 FTP為一種主流的網(wǎng)絡(luò)文件傳輸協(xié)議。設(shè)計(jì)和實(shí)現(xiàn)FTP服務(wù)與客戶端,有助于深入理解網(wǎng)絡(luò)編程和FTP協(xié)議,使理論知識(shí)和實(shí)踐結(jié)合起來(lái)。其主要設(shè)計(jì)工作為:服務(wù)器端設(shè)計(jì)和客戶端設(shè)計(jì)。服務(wù)器日志模塊負(fù)責(zé)顯示各種日志信息,在線用戶模塊負(fù)責(zé)顯示在線用戶信息,程序設(shè)置模塊負(fù)責(zé)配置服務(wù)器的工作參數(shù),統(tǒng)計(jì)模塊負(fù)責(zé)統(tǒng)計(jì)所有的工作情況,安全模塊負(fù)責(zé)管理接入用戶的權(quán)限。連接服務(wù)器模塊負(fù)責(zé)根據(jù)用戶的輸入信息接入服務(wù)器,上傳文件模塊負(fù)責(zé)將本地文件上傳到服務(wù)器,下載文件模塊負(fù)責(zé)下載服務(wù)器文件到本地機(jī)器。關(guān)鍵詞 FTP 服務(wù)器 客戶端 VC++The design of FTP Server and ClientAbstract FTP is a mainstream network file transfer protocol. Design and Implementation of FTP services and clients will help indepth understanding of network programming and FTP, and make the theoretical knowledge and practice together. In this paper, using VC + + programming tool, the FTP server and client designe are designed and implemented. The main design work is for: the design of server and client . Serverside design modules are: server logs module, online modules, procedures set module, statistics module, the security module. Server logs showing module is responsible for the various log information, online displaying is module responsible for online information, procedures setting module is responsible for the allocation of server operating parameters, statistics module is responsible for all the statistical work, security module is responsible for the management of user access privileges. Client design modules are: connect to server module, upload module, download files module. The module to connect to server is responsible for accessing servers by the information which the user enter, uploading file module is responsible for uploading the local paper to the server, downloading files module is responsible for downloading the documents to the local machine from server. Through practical application and testing, it verifys the correctness of the design of the paper.Keywords FTP Sever Client VC++目 錄第1章 引言 1 FTP介紹 1 4 本文工作內(nèi)容 6第2章 系統(tǒng)整體設(shè)計(jì) 7 FTP服務(wù)器整體設(shè)計(jì) 7 FTP客戶端整體設(shè)計(jì) 8第3章 FTP服務(wù)器模塊設(shè)計(jì) 9 9 在線用戶模塊 12 程序設(shè)置模塊 16 統(tǒng)計(jì)模塊 20 安全模塊 24第4章 FTP客戶端模塊設(shè)計(jì) 33 33 下載文件模塊 35 上傳文件模塊 40第5章 結(jié)論和展望 44致 謝 45參考文獻(xiàn) 4651第1章 引言 FTP介紹FTP的主要作用,就是讓用戶連接上一個(gè)遠(yuǎn)程計(jì)算機(jī)(這些計(jì)算機(jī)上運(yùn)行著FTP服務(wù)器程序)察看遠(yuǎn)程計(jì)算機(jī)有哪些文件,然后把文件從遠(yuǎn)程計(jì)算機(jī)上拷到本地計(jì)算機(jī),或把本地計(jì)算機(jī)的文件送到遠(yuǎn)程計(jì)算機(jī)去。 另一個(gè)是啟動(dòng)在遠(yuǎn)程計(jì)算機(jī)的上的FTP服務(wù)器程序,它響應(yīng)請(qǐng)求把指定的文件傳送到計(jì)算機(jī)中。FTP客戶程序有字符界面和圖形界面兩種。圖形界面的FTP客戶程序,操作上要簡(jiǎn)潔方便的多。 一般來(lái)說(shuō),用戶聯(lián)網(wǎng)的首要目的就是實(shí)現(xiàn)信息共享,文件傳輸是信息共享非常重要的一個(gè)內(nèi)容之一?;诓煌牟僮飨到y(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議,這樣用戶就可以把自己的文件傳送給 別人,或者從其它的用戶環(huán)境中獲得文件。用戶通過(guò)一個(gè)支持FTP協(xié)議的客戶機(jī)程序,連接到在遠(yuǎn)程主機(jī)上的FTP服務(wù)器程 序。比如說(shuō),用戶發(fā)出一條命令,要求服務(wù)器向用 戶傳送某一個(gè)文件的一份拷貝,服務(wù)器會(huì)響應(yīng)這條命令,將指定文件送至用戶的機(jī)器上。中國(guó)Web技術(shù)站b:\Qq5xu。在FTP的使用當(dāng)中,用戶經(jīng)常遇到兩個(gè)概念:下載(Download)和上載(Upload)。用Internet語(yǔ)言來(lái)說(shuō),用戶可通過(guò)客戶機(jī)程序向(從)遠(yuǎn)程主機(jī)上載(下載)文件。ew39。也就是說(shuō),要想同哪一臺(tái)計(jì)算機(jī)傳送文件,就必須具有哪一臺(tái)計(jì)算機(jī)的適當(dāng) 授權(quán)。這種情況違背了Internet的開(kāi)放性,Internet上的FTP主機(jī)何止千萬(wàn),不可能要 求每個(gè)用戶在每一臺(tái)主機(jī)上都擁有帳號(hào)。0PYK)Z.8N4G,??M U%j系統(tǒng)管理員建立了一個(gè)特殊的用戶ID,名為anonymous, Internet上的任何人在任何地方都可使用該用戶ID。w7G$F 通過(guò)FTP程序連接匿名FTP主機(jī)的方式同連接普通FTP主機(jī)的方式差不多,只是在要求提供用戶標(biāo)識(shí)ID時(shí)必須輸入anonymous,該用戶ID的口令 可以是任意的字符串。zk?h*a*J8R/EO 值得注意的是,匿名FTP不適用于所有Internet主機(jī),它只適用于那些提供了這項(xiàng)服務(wù)的主機(jī)。系統(tǒng)中的其余目錄則處于隱匿狀態(tài)。即使有些匿名FTP主機(jī) 確實(shí)允許用戶上載文件,用戶也只能將文件上載至某一指定上載目錄中。中國(guó)Web技術(shù)站F:jm dDamp。但是,實(shí)際上大多數(shù)人只有一個(gè)Internet帳戶,F(xiàn)TP主 要用于下載公共文件,例如共享軟件、各公司技術(shù)支持文件等。實(shí)際上,幾乎所有類型的信息,所有類型的計(jì)算機(jī)程序都可 以在Internet上找到。匿名FTP使用戶有機(jī)會(huì)存取到世界上最大的信息庫(kù),這個(gè)信息庫(kù)是日積月累起來(lái) 的,并且還在不斷增長(zhǎng),永不關(guān)閉,涉及到幾乎所有主題。中國(guó)Web技術(shù)站1f6Q\ah 匿名FTP是Internet網(wǎng)上發(fā)布軟件的常用方法。像這樣的程 序,有許多就是通過(guò)匿名FTP發(fā)布的,任何人都可以存取它們。Archie將自動(dòng)在FTP主機(jī)中進(jìn)行搜索,構(gòu)造一個(gè)包含全部文件目錄信息的數(shù)據(jù)庫(kù),使你可以直接找到所需文件的位置信息。 Standard模式 FTP的客戶端發(fā)送 PORT 命令到FTPserver。Standard模式FTP 客戶端首先和FTP Server的TCP 21端口建立連接,通過(guò)這個(gè)通道發(fā)送命令,客戶端需要接收數(shù)據(jù)的時(shí)候在這個(gè)通道上發(fā)送PORT命令。在傳送數(shù)據(jù)的時(shí)候,服務(wù)器端通過(guò)自己的TCP 20端口發(fā)送數(shù)據(jù)。Passive模式在建立控制通道的時(shí)候和Standard模式類似,當(dāng)客戶端通過(guò)這個(gè)通道發(fā)送PASV 命令的時(shí)候,F(xiàn)TP server打開(kāi)一個(gè)位于1024和5000之間的隨機(jī)端口并且通知客戶端在這個(gè)端口上傳送數(shù)據(jù)的請(qǐng)求,然后FTP server 將通過(guò)這個(gè)端口進(jìn)行數(shù)據(jù)的傳送,這個(gè)時(shí)候FTP server不再需要建立一個(gè)新的和客戶端之間的連接。一般一些FTP客戶端的軟件就比較好設(shè)置了,一般都有一個(gè)PASV的選項(xiàng),比如 CuteFTP,傳輸?shù)姆绞蕉加蠸tandard和PASV的選項(xiàng),可以自己進(jìn)行選擇;另外在IE里面如果要設(shè)置成PASV模式的話可以選中工具- Internet選項(xiàng)-高級(jí)-為FTP站點(diǎn)啟用文件夾視圖,否則就采用Standard模式。Visual c++是開(kāi)發(fā)Windows應(yīng)用程序的主流開(kāi)發(fā)工具,可以利用的資源多。它是一個(gè)全面的應(yīng)用程序開(kāi)發(fā)環(huán)境,使用它你充分利用具有面向?qū)ο筇匦缘?C++ 來(lái)開(kāi)發(fā)出專業(yè)級(jí)的 Windows 應(yīng)用程序。 C++作為一種程序設(shè)計(jì)語(yǔ)言,它同時(shí)也是一個(gè)集成開(kāi)發(fā)工具,提供了軟件代碼自動(dòng)生成和可視化的資源編輯功能。 C++開(kāi)發(fā)應(yīng)用程序的過(guò)程中,系統(tǒng)為我們生成了大量的各種類型的文件。Visual C++采用的框架是MFC。你如果選擇了MFC,也就選擇了一種程序結(jié)構(gòu),一種編程風(fēng)格。MFC 是在整個(gè) Windows 家族中都是兼容的,也就是說(shuō),無(wú)論是 、Windows95 還是 Windows NT,所使用的