服务器设计说明书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京大学

计算机科学与技术系计算机网络课程设计报告Alien FTP的设计与实现

服务器端设计说明书

完成人:方超(061221021)

单梦凡(061221016)

组员:笪庆(061221015)

方超(061221021)

单梦凡(061221016)

指导教师:夏耐

2009年1月

一、概述 (3)

二、开发目标 (3)

二、参考文档 (4)

三、开发工具和平台 (4)

四、测试工具 (4)

五、程序结构 (4)

1)类定义 (4)

2)主要类接口 (5)

2.1CAlienFTPServerDlg类 (5)

2.2AlienFTPServerCmd类 (5)

3)线程定义 (6)

五、功能模块设计 (7)

1)总体流程 (7)

2)新建用户 (8)

3)侦听、启动连接 (8)

4)命令控制和响应模块 (10)

六、小结 (13)

Alien FTP服务器端设计说明书

方超061221021

单梦凡061221016

一、概述

FTP作为文件传输协议(File Transfer Protocol),其任务务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联系的方式、以及使用的操作系统无关。FTP采用“客户机/服务器”方式,客户端要在自己的本地计算机上安装FTP客户程序,而服务器端则提供远程的访问和文件传输。针对FTP的服务器端来说,主要为用户和管理员提供访问权限,并通过侦听端口以随时响应合法的客户请求。通过控制通道和数据通道分别控制和响应对应的相关请求以及进行所需的数据文件传输。响应的基本指令同标准的FTP协议规范以做到兼容现行的FTP客户端软件(如Flashxp等),同时主要要保证同本组对应的FTP客户端程序相兼容,确保其正确性和可扩展性。

基于服务器端的功能和特点,需要保证能够对端口进行实时侦听,及时响应客户端发送的命令,并由此打开控制通道,等待客户端用户的命令再做对应处理,开放数据通道进行信息和文件等数据的传输。服务器需要能够对用户进行认证并对命令做出及时准确的回应,满足传输等需求。由此在设计实现服务器端时,要能够建立一定的客户访问机制,设置权限,针对不同的用户确定相应的处理机制以实现“合法”的访问传输,更重要的一点是正确地解析来自客户端发出的请求命令,给予实时同时需准确无误地响应。要在客户端完成登陆,退出,列目录,下载/上传文件,下载/上传目录,删除文件/目录,新建目录,断点续传等操作的基础上针对每个操作的对应命令做出回复完成合法用户所需的功能。

二、开发目标

设计并实现一个符合标准FTP协议规范的,并支持拥有登陆,退出,列目录,下载/上传文件,下载/上传目录,删除文件/目录,新建目录,断点续传以及传输过程中状态计算等功能的对应FTP客户端系统和兼容有同样功能的现行FTP 客户端软件。

二、参考文档

《协议说明书》(我们的前期文档)

《Visual C++6.0网络及Internet开发指南》

《Visual C++网络程序设计实例详解》

《Visual C++网络高级编程》

三、开发工具和平台

基于Visual C++6.0的SOCKET网络编程,在Windows XP SP3下开发完成。

由于近阶段一直在使用VC6.0完成相关实习,并需要同客户端兼容,就决定采用VC6.0下的MFC支持SOCKET进行FTP的开发。

四、测试工具

由于并行开发和需要兼容现行FTP的缘故,为方便测试,采用Flashxp作为客户端软件调试,当然后期主要是直接同本组客户端进行连接测试。

五、程序结构

1)类定义

class specification

CAlienFTPServerDlg 主对话框类,用于图形界面的处理,通过调用AlienFTPServerCmd类提供的函数实现支持客户端的请求并做出响应。

AlienFTPServerCmd FTP命令处理类,该类主要负责实现功能需求的各种函数,供CAlienFTPServerDlg直接调用,同时也提供一些基本操作使CAlienFTPServerDlg可以通过这些操作的组合完成复杂的功能。几乎所有的响应指令都是通过该类完成。

CAlienFTPServer对应的工程类,基本没有完成相关操作

Adduser 用于增加用户的对话框类,实际中应由管理员进行分配,使用户在持有用户名和密码的情况

下访问FTP服务器,同时也支持匿名登陆。

2)主要类接口

2.1CAlienFTPServerDlg类

classmember function

OnStart用于侦听客户端的请求以开启服务器的相关服务,它调用

ThreadStart的线程处理该操作。

OnViewpath 用于浏览选择对应主机上的文件夹路径供用户访问,它同服务器端和客户端其它处理相同类型的操作所采用的方式基本相同。

OnAddUser该功能比较简单,主要是跳出增加用户的对话框以设置相

关信息,主要功能实现还是在AlienFTPServerCmd中。

2.2AlienFTPServerCmd类

该类完成的操作较为复杂,几乎所有服务器的处理工作都由它完成,故只针对部分进行介绍。classmember function

AddUser增加访问服务器的用户操作,并将信息记录在Usernode

的结构体中。

GetUserListHead得到用户列表中的第一个用户信息(主要是用户名),其

它如GetUserListLast等函数功能与之类似。GetUserLogin得到当前登陆的用户信息(用户名),其它如

GetUserPasswd其功能和结构与之相似GetUserStartDir得到对应的用户登陆的根目录信息

StartListening开启端口进行侦听,相应的StopListening则为结束侦听IsListening确定当前服务器是否处于Listening状态

相关文档
最新文档