504650711毕业设计(论文)C++小型FTP服务器系统.doc

上传人:文库蛋蛋多 文档编号:2396985 上传时间:2023-02-17 格式:DOC 页数:38 大小:585KB
返回 下载 相关 举报
504650711毕业设计(论文)C++小型FTP服务器系统.doc_第1页
第1页 / 共38页
504650711毕业设计(论文)C++小型FTP服务器系统.doc_第2页
第2页 / 共38页
504650711毕业设计(论文)C++小型FTP服务器系统.doc_第3页
第3页 / 共38页
504650711毕业设计(论文)C++小型FTP服务器系统.doc_第4页
第4页 / 共38页
504650711毕业设计(论文)C++小型FTP服务器系统.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《504650711毕业设计(论文)C++小型FTP服务器系统.doc》由会员分享,可在线阅读,更多相关《504650711毕业设计(论文)C++小型FTP服务器系统.doc(38页珍藏版)》请在三一办公上搜索。

1、Suihua University Graduation Paper A Small FTP System Based on the VC+Student name Student number 200450433 Major Computer Science & TechnologySupervising teacher Suihua University摘 要本程序是一个小型FTP服务器系统,实现了FTP服务器所应该具备的大多数功能,包括用户的登录,文件的上传、下载、删除,选择数据传输模式、目录选择等,并给出相应的提示。通过该程序的开发,基本上实现了一个FTP服务器所应该具有的功能,能够解

2、释一般的FTP命令,并且符合RFC959规范。本软件的设计,即从需求分析,软件设计到软件功能实现,都始终遵循软件工程的思想和方法。本文中采用了大量的图表说明,使文章明确清晰,便与阅读和理解。本程序采用VC+6.0作为开发工具,设计步骤采用自顶向下的方法。 关键词:上传;下载;VC+;FTP服务器Abstract This procedure is a small FTP server system, carrying out most functions that FTP server should have, including the logging of the customer, do

3、cument of up load, download, delete, the choice data delivers the mode, the catalogue choice.etc., and hint homogonously for . Pass the development of that procedure, carried out the function that a FTP server should have basically, can explain the general order of FTP, and match the norm of RFC959.

4、The design of this software, namely analytical from the need, the software designs the software function to carry out, all following the thought and the method of the software engineering always. It adopted a great deal of chart in this text elucidation, make article definitely clear, then with read

5、 and comprehend.This procedure adopts the VC+6.0 conduct and actions development tool, design step adoption from a method for get down.Key words: upload; download; VC+; FTP server目录摘要IAbstractII前言1第1章 FTP协议与原理21.1 FTP简介21.2 FTP的工作原理21.3 FTP运行原理31.4 FTP文件传输连接类型5第2章 开发环境及工具介绍82.1 C语言概述82.2 VC+介绍82.3 V

6、C+6.0集成开发环境82.4 MFC介绍92.5 SOCKET9第3章 FTP服务器需求分析113.1 FTP文件传输的需求113.2 应解决的问题123.3 功能分析12第4章 系统设计与实现134.1 功能要求134.2 开发工具134.3 主要功能与实现13第5章 系统测试225.1 系统可能出现的问题与不足225.2 采用的测试类型225.3 测试的过程与结果分析22结论24参考文献25附录26致谢33前 言进入信息时代,随着互联网普及,只要接上网络,就能从网上找到庞大的数据资源,其内容包罗万象,可以说几乎任何人都可以在Internet资源中找到自己所需要的信息资源。有了网络,使用者

7、不但可以浏览各种各样的信息资源,还能够将自己感兴趣的资源下载到本地机上。由于网络的带宽及各种服务的限制,单纯从页面上下载显得又慢又不可靠,所以就有许多FTP工具提供出来。从根本上说,FTP就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP采用的是现在流行的Client/Server模式,由FTP客户端和FTP服务器端程序组成。通常服务器端是远程端点,用户可以通过Internet网络连接到远程的FTP服务器站点。服务器的功能是主要的。只有当FTP服务器支持各种协议和指令时,才能够开发相应的客户端程序。下面我们就来介绍一下我自己开发一个小型FTP服务器的过程与思路。第1章 FT

8、P协议与原理1.1 FTP简介FTP(File Transfer Protocol)是文件传输协议的简称。直到1994年,当WWW掌管Internet时,文件传输协议(FTP)是和e-mail一样最广泛应用的Internet客户程序。它被用于作为访问Internet主机文件的一个远程外壳。使用FTP可以连接到一个FTP服务器,在可用的目录间游历,并且传输文件。 一个FTP站点可以是公用的,私有的,或者两者兼有之。使用一个私有的账号,你可以拥有访问整个网络的目录结构,或者只是特定的区域权限。Internet同时也是一个拥有很多允许任何人连接和传输文件的FTP服务器的中心,不管他们有没有主机上的账

9、号。这叫做匿名FTP。当你登录到一个匿名FTP站点时,你通常使用“anonymous”作为你的用户名,“guest”或你的 e-mail地址作为密码。例如,匿名FTP经常用于发布大量的公用领域或共享软件。其中一个著名的公用FTP站点是ftp.cica.indiana.edu。FTP的主要设计目的是用于程序之中,不过FTP程序自身已经成为任何一个TCP/IP实施的重要部分。当你在Windows 3.11、Windows95或Windows NT中使用Microsoft的TCP/IP驱动程序时,FTP.exe将被安装。实际上,FTP已经包含于Netscape和其它的WWW浏览器中,因此你可以使用浏

10、览Web的程序同时浏览FTP服务器1。1.2 FTP的工作原理1FTP工作原理FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的“三次握手”的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。采用FTP协议可使 Internet用户高效地从网上的FTP服务器下载大信息量的数据文件,将远程主机上的文件拷贝到自己的计算机上。以达到资源共享和传递信息的目的。由于FTP的使用使得Internet上出现大量为用户提供的下载服

11、务器。Internet成为了一个巨型的软件仓库。FTP在文件传输中还支持断点续传功能,可以大幅度地减小CPU和网络带宽的开销。2FTP服务器登录方式的分类我们已经知道FTP服务实际上就是将各种可用资源放在各个FTP主机中,网络上的用户可以通过Internet联到这些主机上,并且使用FTP(文件传送协议)将想要的文件拷回到自己的计算机中。在使用FTP传送文件之前,最主要的步骤就是如何联入各Internet上的FTP服务器。联入的主要步骤也就是登录(Login)的过程。通常用户在欲下载的FTP服务器上输入许可的帐号(account)和密码(password),得到该服务器许可后,即可进入。FTP服

12、务器分为两种: 其一,为一般的FTP服务器,进入这种服务器时必须拥有该主机的帐号和密码;其二,为匿名FTP服务器(称为anonymous FTP服务器)登录此类FTP服务器时,用户只要以“guest”或“anonymous”为帐号,并以自己的E-mail地址为密码,即可进入该FTP服务器主机,任意浏览和下载文件。当用户登录到某个FTP服务器时,如果用“guest”或“anonymous”为帐号,均无法进入,则表明该服务器不是匿名FTP服务器。实际上,匿名FTP只是FTP中的一种,它是一种开放式帐号的FTP服务器,它可以为网络上的任何使用者所利用,与非匿名的FTP不同的只是登录时的帐号为“ano

13、nymous”,而密码为任一用户的E-mail地址。现在,某些站点还明确要求使用电子邮件地址作为匿名用户密码,而不接受“guest”这样的密码。提供电子邮件地址,有助于让站点的拥有者了解到是哪些人在使用他们的服务。1.3 FTP运行原理FTP的工作原理与其他许多网络实用程序一样,也是基于客户/服务器模式。互联网文件传输协议(File Transfer Protocol) 标准是在FTC959说明的。该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。一般来说,要传输文件的用户需先经过认证以后才能登录ftp服务器,访问在远程服务器的文件。大多数的FTP服务器往往提供一个guest

14、的公共帐户来允许没有FTP服务器帐户的用户可以访问该FTP服务器。一个FTP会话通常包括五个软件元素的交互。就模型而言,从1973年以来并没有什么变化。如图1-1所示。图1-1 FTP协议模型下表是交互元素列表表1-2交互元素列表软件要素名称应用说明用户接口提供了一个用户接口并使用客户端协议解释器的服务USERPI客户端协议解释器,向远程服务器协议机发送命令并且驱动客户传输过程UPTP客户端数据传输协议,负责实现与远端服务器进行数据传输,并与客户端本地文件系统交互SPI服务器协议解释器,响应客户协议机发出的命令,并驱动服务器端数据传输过程SDTP服务器数据传输协议负责和客户进行数据传输以及服务

15、器端文件系统通信在一个FTP会话中,会存在两个独立的网络连接,一个是由两端的PI使用的,另一个是由两端的DTP使用的。PI之间的连接一般被称作控制连接(control connection),DTP之间的连接被称作数据连接(data connection)。通常情况下,ftp服务器监听端口号2 1来等待控制连接建立请求,当客户连接请求到达,会在客户和ftp服务器之间建立一个控制连接。而数据连接端口号的选择依赖于控制连接上的命令,通常是客户发送一个控制消息来指定客户需要建立一个数据连接来传输ftp数据(如下载/上载一个文件,显示当前目录的内容等等,都需要建立数据连接来传输数据),在该消息中,指定

16、了客户监听并等待连接的端口号,而服务器从控制连接收到该命令,向客户端发起一个连接请求到消息中指定的端口号,客户端收到该请求以后就会建立一个数据连接。连接建立以后,服务器或客户就会主动通过该连接发送数据(可能是要传输的文件,也可能是用户在命令行上发出的IS命令的输出)。1.4 FTP文件传输连接类型一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。1控制连接客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连

17、接就称为FTP控制连接。2数据连接FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP数据连接就是FTP传输数据的过程,它有两种传输模式:主动传输模式(Active)和被动传输模式(PASSIVE),如图1-3所示。图1-3主动传输模式和被动传输模式1)主动传输模式当FTP的控制连接建立,客户提出目录列表、传输文件时,客户端发出PORT命令与服务器进行协商,FTP服务器使用一个标准端口20作为服务器端的数据连接端口(ftp-data),与客户建立数据连接。端口20只用于连接源地址是服务器端的情况,并且端口20没有监听进程来监听客户请求。 在主动传输模式下,FTP的

18、数据连接和控制连接方向相反,由服务器向客户端发起一个用于数据传输的连接。客户端的连接端口由服务器端和客户端通过协商确定。主动传输模式下,FTP服务器使用20端口与客户端的暂时端口进行连接,并传输数据,客户端只是处于接收状态。2)被动传输模式 当FTP的控制连接建立,客户提出目录列表、传输文件时,客户端发送PASV命令使服务器处于被动传输模式,FTP服务器等待客户与其联系。FTP服务器在非20端口的其它数据传输端口上监听客户请求。 在被动传输模式下,FTP的数据连接和控制连接方向一致,由客户端向服务器发起一个用于数据传输的连接。客户端的连接端口是发起该数据连接请求时使用的端口。当FTP客户在防火

19、墙之外访问FTP服务器时,需要使用被动传输模式。被动传输模式下,FTP服务器打开一个暂态端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。到此为止我们介绍FTP工作原理,下节将介绍FTP命令。1.5 FTP命令 FTP的主要操作都是基于各种命令基础之上的。常用的命令有:1)USER:指用户名,它带一个参数。格式为:USER username2)PASS:指明与用户名对应的密码,带一个参数。格式为:PASS password3)LIST: pathname参数表示要列文件的目录路径名,若不带参数,刚使用当前目录PORT:指明数据连接的端口号,带六个参数。格式为:

20、PORT h1,h2,h3,h4,p1,p24)QUIT:由于要求传输文件时有登陆的过程,断开连接到应有相应的注销过程。这个命令就是从服务器上注销的过程,如果服务器收到该命令时,没有文件正在传达室输,刚断开控制,连接如果有文件正在传输,刚控制连接仍然保持,直到收到有关传输结果的应答时,服务器才断开连接。5)RETR:取得文件这条命令是FTP事务是用得最多的命令,在请求下载文件时都有会用到。6)STOR:存放文件。7)WYWT:请求服务器返回系统类型。8)TYPE:表示文件类型,共有四种,所带参数也有四种,A,E ,I ,L 分别对应ASCII,EBCDIC,IMAGB和LOCAL类型。格式为:

21、TYPE type9)CMD:请求更改服务器的当前目录这各命令带一个参数,参数表示要更改的目录名。10)DELE:请求删除服务器上的文件。11)MKO:请求在服务器上新建一个目录,这条命令带一个参数指明要建立的目录名。 第2章 开发环境及工具介绍2.1 C语言概述C语言是在70年代初创建的一种计算机语言,它既有汇编语言可以直接访问机器硬件的功能,又具有高级语言面向用户、可读性好和易于记忆的优点,因此受到广大程序员的欢迎。C是一种结构化的程序设计语言。它由顺序、选择和循环三种基本结构组成,便于实现由上到下、逐步细化的结构化程序设计。因此,用C编写的程序具有容易理解和便于维护的优点。C语言的函数结

22、构有利于程序分割为相对独立的功能模块,为大型软件实现模块化的程序设计创造了条件。C没有依赖于硬件的输入和主、输出语句,因此用它编制的程序有较好的可移植性。C语言首先在Unix操作系统中得到了应用,由于它的这些优点很快成为当前应用最为广泛的计算机语言2。2.2 VC+介绍Visual C+ 6.0是微软公司推出的开发Win32应用程序(Windows 95/98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C+类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内

23、容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易3。2.3 VC+6.0集成开发环境Visual C+提供了一个集源程序编辑、代码编译与调试于一体的开发环境,这个环境称为集成开发环境,对于集成开发环境的熟悉程度直接影响程序设计的效率。开发环境是程序员同Visual C+的交互界面,通过它程序员可以访问C+源代码编辑器、资源编辑器,使用内部调试器,并且可以创建工程文件。Microsoft Visual C+是多个产品的集成。Visual C+从本质上讲是一个Windo

24、ws应用程序。Visual C+有两个版本,对于每一个版本,都有对应的文档。1)专业版本,它包括一个更高级的优化编译器,更广泛的文档,并能设计基于DOS的应用程序。2)标准版本,其费用较低,没有那么高级的编译器,文档较少,且不能设计基于DOS的应用程序4。2.4 MFC介绍MFC(Microsoft Foundation Class)库是Microsoft为利用VC+开发的Windows应用程序而提供的应用程序框架,在这个框架的支持下,对于不同的应用程序,编程的主要任务是填写各自特殊部分的代码,MFC由于某种原因130多个类组成,这些类封装了两千多个API函数。MFC类库主要包括两类,一组是一

25、般用途类,它提供了许多有用的抽象类,如Cfile类代表文件;CWnd类是窗口类,这些在Windows的编程中有重要的作用。另一类是OLE类,这一类专门用于OLE的编程。使用MFC的优点很多,主要的优点如下:1) 用类编程,将代码和数据封装在类中,大大减少了编程的复杂性。2) 通过继承实现了基本的代码重用。在MFC中定义了大量类,所以可以在编程中通过继承来使用这些类,另外,MFC还在这些类中定义了大量的虚函数,也就是说,对于这些函数,不但可以保存它们原有的特性,还可以对这些函数进行修改,使之具有新的特性。3) 提供了大量的工具方便编程。在MFC中,可以使用AppWizard(应用程序向导),来建

26、立应用程序的框架,可以使用ClassWizard(类向导)在程序中添加类、变量以及在程序中传递各种信息。用ControlWiard(控件向导)创建可以在Windows中注册的控件等。4) 借助设计良好的类库通常可以减少代码规模。2.5 SOCKET (套接字)Socket 通讯机制是一种较原始的通讯机制,通过Socket的数据表现出来的形式是原始字节流信息,通讯双方只要在此基础上按照双方约定方式进行数据的格式化和解析处理工作,这样才能完成具体的应用,即实现某种协议的过程。Socket可以看成是在两个程序间进行通讯连接的两个端点,一个程序将一段信息写入一个Socket中,该Socket将这段信息

27、发送给另外一个Socket,以便使这段信息能传达到其他程序中。图2-1是Socket的工作原理图。程序A程序B网络管理软件SocketSocket网卡图2-1 Socket原理图Socket有两种主要的工作方式:有连接的和无连接的。有连接方式如流通讯;无连接方式如数据包方式。有连接的Socket操作就像一部电话。它们必须建立一个连接和一个呼叫。所有的事情在到达时的顺序与它们出发时的顺序一样5。第3章 FTP服务器需求分析3.1 FTP文件传输的需求Internet上早期实现传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,

28、据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。 与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令

29、,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上FTP(File Transfer Protocol 文件传输协议)是Internet 上用来传送文件的协议。在Internet上通过FTP 服务器可以进行文件的上传(Upload)或下载(Download)。FTP是实时联机服务,在使用它之前必须是具有该服务的一个用户(用户名和口令),工作时客户端必须先登录到作为服务器一方的计算机上,用户登录后可以进行文件搜索和文件传送等有关操作,如改变当前工作目录、列文件目录、设置

30、传输参数及传送文件等。使用FTP可以传送所有类型的文件。FTP服务器的使用十分广泛,在网络上随处可见到FTP服务器。主要用于存放文件,让网络中的计算机可以共享这些文件。因此,FTP服务器要有很大的存贮空间,免费的FTP空间总是有限的,所以我们想,能不能将FTP服务器建在自己的计算机上呢?随着网络技术的不断成熟,宽带业务的不断推进,我们用动态IP将Web主机、FTP服务器和MAIL服务器搬回家,已经不再是梦想。通常服务器端是远程端点,用户可以通过Internet网络连接到远程的FTP服务器站点。在设计程序之前,我们首先要进行一个重要的步骤需求分析。所谓需求分析,就是分析软件用户的需求是什么。如果

31、投入大量的人力,物力,财力,时间,开发出的软件却没人要,那所有的投入都是徒劳.如果费了很大的精力,开发一个软件,最后却不满足用户的要求,从而要重新开发过,这种返工是让人痛心疾首的.而我们现在就很明确的知道,我们的程序是用来进行局域网文件传输的,知道了这一点,我们的程序至不会全部返工,因为我们已经知道我们软件所要完成的功能是什么。 明确了程序的功能我们要近一步的分析。3.2 应解决的问题选择好开发工具,设想好程序将要实现的大体功能后,我们就要分析该程序所需的条件,对该程序中将要遇到的问题做一下准备工作,以便于以后设计的顺利进行。根据我们想要在局域网内进行文件传输的要求,首先,要选择在局域网内通讯

32、;其次,因为本程序要实现的是FTP服务器功能,所以我们要建立服务器但是为了测试服务器是否能够有效运行,我又配置了一个客户端。3.3 功能分析在做程序之前,我们要先确定本程序的功能,只有确定了功能,才能确定程序中使用什么函数来实现。如果想在局域网内进行文件传输,首先要有服务器端和客户端,两者配合使用。先打开客户端和服务器,然后让客户登陆一下服务器,服务器端设制一下服务器所完成的功能,然后客户端在向服务器发送请求。 第4章 系统设计与实现4.1 功能要求本程序是一个在局域网内实现的小型FTP文件传输。主要实现的是FTP服务器端功能,包括:FTP服务日志,在线用户的管理,统计客户端信息还有客户端上传

33、、下载、选择数据传输模式、改变目录等,并给出相应的提示。4.2 开发工具本系统的实现采用的工具为Visual C+ 6.0。开发平台为Windows2000,WindowsXP。程序界面主要包括服务器日志、在线用户、统计信息、安全管理、菜单栏、工具栏、状态栏。如图4-1所示。图4-1 服务器用户界面4.3 主要功能与实现用CSocket类编制的服务器端的程序,其过程如下,其过程主要是:1) 创建CSocket对象。2) 创建底层套接字Socket。3) 调用Listen,开始监听从客户端发来的访问请求。4) 如果收到请求,调用CAsyncSocket:Accept( )函数进行接收外理。5)

34、建立CSocketFile对象,并且使该对象与CSocket对象具备一定的联系。6) 建立Carchive对象,以便实现卸装(接收)数据和存储(发送)数据的目的地址。当然,该Carchive对象应该与前面的CSocketFile对象建立联系。7)使用Carchive对象在客户和服务器Socket之间传递数据,从而实现服务器Socket和客户机Socket之间的通信。值得注意的是,一个给定的Carchive对象只能在单一的方向上传递数据:或者接收,或者发送。一般情况下,可能需要两个Carchive对象来实现数据的双向传递6。4.3.1 菜单栏功能模块菜单拦包括:服务器,查看。服务器菜单包括:开始

35、,停止,用户账户向导,用户账户等功能。查看菜单包括:服务器日志,在线用户,配置,统计,安全等功能。各项功能实现如下:服务器功能:1. 帐户向导:当你 登录服务器时你需要一个有效的账户,用户帐户向导将引导您通过必要的步骤,创造一个新的用户帐户。并将其添加到用户帐户对话框,创建用户名,如图4-2所示。图4-2用户帐户向导窗口通过这个窗口你可以创建自己的用户名以及密码用以登陆FTP服务器,该部分功能实现代码如下:CWizardPage1:CWizardPage1() : CPropertyPageEx(CWizardPage1:IDD, 0, IDS_HEADERTITLE1, NULL)m_str

36、AccountName = _T(“);m_psp.dwFlags &= PSP_HASHELP; CWizardPage1:CWizardPage1()void CWizardPage1:DoDataExchange(CDataExchange* pDX)CPropertyPageEx:DoDataExchange(pDX);DDX_Text(pDX, IDC_ACCOUNTNAME, m_strAccountName);BEGIN_MESSAGE_MAP(CWizardPage1, CPropertyPageEx)END_MESSAGE_MAP()2用户帐户功能:这一功能主要是服务器端添加

37、,修改和删除用户帐户,设置目录权限(使用添加按钮以添加一个新目录,其中选定的用户帐户已具有访问权限,每小组目录您可以设定不同的权限,例如你可以给所有权限到C : 下载,但限制的权限为C : 下载申请时,没有权限指定的目录,在这个目录中它会自动阻止用户要求上传任何子目录)。目录属性,当您添加的编辑目录的用户帐户,目录属性对话框将显示物理目录(物理目录是真正的路径文件夹的名称)。虚拟目录(虚拟目录是一个物理文件夹的别名,当用户连接到您的FTP服务器,它将看到这个目录名而不是真正的物理名称)。设制服务端允许客户端的权限,例如允许客户端可以下载,上传,重命名哪些服务器端的文件内容。例如用户123将:

38、E:盘设为许可目录,客户端就可以随时下载,上传E:盘里面的内容,如图4-3所示。图4-3用户帐户窗口这一功能实现,代码如下void CUserAccountsDlg:OnDblclkDirlist(NMHDR* pNMHDR, LRESULT* pResult) OnEditDir();*pResult = 0;4.3.2查看功能模块1服务器日志模块的功能:在此屏幕,记录客户端与服务器端的连接信息以及传输信息,当客户端登陆服务器时服务器日志会显示是否与服务器连接成功,当客户端要上传文件或是下载文件成功时会记录服务器和FTP客户端的详细资料,从而有助于您追踪服务器与客户端之间所有的通讯讯息,数目

39、之间的方括号 是线程ID,如图4-4所示。该部分功能实现代码如下:friend CLogFile& setlevel(CLogFile& os, int level) m_nCurrentLevel = level; return os; friend CLogFile& error_lvl(CLogFile& os) os.m_nCurrentLevel = 1;return os;friend CLogFile& warning_lvl(CLogFile& os) os.m_nCurrentLevel = 2;return os;friend CLogFile& trace_lvl(CLo

40、gFile& os) os.m_nCurrentLevel = 3;return os;图4-4服务器日志窗口2在线用户模块的功能:通过服务器来查看在线客户端的用户名,用户IP地址,用户登陆时间等信息,如图4-5所示。图4-5在线用户窗口该模块功能实现代码如下:class COnlineUsersPage : public CDialogDECLARE_DYNCREATE(COnlineUsersPage)public:void RemoveUser(DWORD nThreadID);void AddUser(DWORD nThreadID, LPCTSTR lpszName, LPCTSTR

41、 lpszAddress);COnlineUsersPage();COnlineUsersPage();enum IDD = IDD_PROPPAGE_ONLINE ;CListCtrlm_OnlineUsers;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV supportprotected:afx_msg void OnSize(UINT nType, int cx, int cy);virtual BOOL OnInitDialog();afx_msg void OnContextMenu(CWnd

42、* pWnd, CPoint point);afx_msg void OnKickUser();afx_msg void OnEditUserAccount();afx_msg void OnBlockIp();DECLARE_MESSAGE_MAP();/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif 3配置模块的功能:在这里,可以配置FTP服务器所有的设置。默认服务器端口为21,可以同时连接最多用户数,客户端与服务器端连接时间(当客户端已

43、闲置的具体时间,它会自动断开),欢迎信息(当客户端连接到服务器时将会显示该文本),再见讯息(文本将显示当一个客户端从服务器断开时)其他设置,FTP服务器在Windows下启动,启动最小化在系统盘 ,并在启动时自动激活服务器。用户还可以将用户各种信息都记录在服务器日志里,如图4-6所示。 图4-6 配置界面可通过该图可以看出来,服务器的一些配置功能的实现代码如下: CConfigurationPage:CConfigurationPage() : CDialogResize(CConfigurationPage:IDD)m_nPort = 0;m_nMaxUsers = 0;m_strGoodbyeMessage = _T(“);m_bStartInTray = FALSE;m_nTimeout = 0;m_strWelcomeMessage = _T(“);m_bLaunchOnStartup = FALSE;m_bAutoActivate = FALSE;m_nLogLevel = 0;m_strApplicationName = _T(“);m_bModified = FALSE;CConfigura

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号