第 1 页
服务器及客户端设计及开发
详细设计
程序包括5个主要功能:
服务器的运行:启动和停止服务
用户管理:添加用户,删除用户和设置用户权限
服务器配置:设置服务器开放端口,最大连接数等
运行统计:统计当前服务器运行时期上传下载的流量等等
安全设置:允许连接服务器的列表,以及禁止访问的
服务器的运行模块
功能:负责服务器的运行。
使用类:类,类,类,类,类
各种类的功能:
类:是的子类,作为程序的顶层类,负责实现或者调用各个成员函数
类:类的子类,实现程序主窗口。
类:负责监听客户端连接,并实现有效连接
类:负责实现并保证多个连接的有效性。
类:实现命令的解析,数据的发送和接收
类
作为服务器的顶层类,实现服务器开始运行时的所有成员函数
申明如下:
作为其友元类,可以访问内部私有数据成员
第 2 页
( )发送退出信息
( )发送欢迎信息
( )设置暂停时间
( )设置端口
( )设置最大连接数
( )统计时间间隔
()是否有效
用户管理对象
安全策略
类
最主要的成员函数是()和(),分别负责服务器的开始运行和结束运行
函数声明如下:
/* : 21 */
如果运行,返回错误标志
((0, (0), " ", , 0,0,0,0, , 0))
(0, " .");
开始创建
(1, , );
(0, " .", );
(0, " .", );
(1);
第 3 页
(0, "[] ...", );
>(,0,0);
, ( 5 )
((, 5000) )
't
(0, "[] .", );
't ,
(0, "[] .", );
(0, " .");
类
用于监听每个客户的连接,类是的子类,其成员函数监听来自客户端的连接,当监听到可以接收的的时候通过函数准备创建有效连接的进程。
函数如下:
a .
a .
* = (*)((), , 0, );
(" \n");
a .
类
类负责为每个有效进程创建一个线程,每个进程完成数据传输的所有任务,穿件县城后通过完成线程的初始化
第 4 页
a .
's a
>(, (), 0);
("421 , .");
(,0,0);
("421 , .");
(,0,0);
("220 " + );
= (, 0, 1000, );
( *e)
线程结束以后,通过函数实现资源的释放代码如下:
>(, (), 0);
( *e)
为了了解传输过程中接收和发送的字节数,使用和来计算。这两个函数在类中调用,代码如下:
>(, ()0, ());
>(, ()1, ());
类
每个线程都是通过一个对象来完成数据的接受和发送。当线程创建成功以后,对象通过函数获得数据,然后利用函数来解析其中命令
0:
第 5 页
[256];
( 0)
[] = 0;
函数
是当前程序最重要的一个部分,它根据客户端提交的各种命令进行相应的操作代码如下
查找命令
("501 ");
("500 , .");
("530 .");
a
("331 " + );
("503 .");
设置用户主目录
成功登录提示
("230 ");
("530 !");
0:
("250 . \"\" .", );
1:
("550 . \"\": .", );
("550 . \"\": .", );
第 6 页
("257 \"\" .", );
( a123412) -> a1234, p1*2562.
0;
1: a1
2: a2
3: a3
4: a4
5: p1
ftp服务器与客户端设计与开发 来自淘豆网m.daumloan.com转载请标明出处.