资源描述:
《FTP服务器与客户端设计与开发.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、FTP服务器与客户端设计与开发详细设计程序包括5个主要功能:1.服务器的运行:启动和停止FTP服务2.用户管理:添加用户,删除用户和设置用户权限3.服务器配置:设置服务器开放端口,最大连接数等4.运行统计:统计当前服务器运行时期上传下载的流量等等5.安全设置:允许连接服务器的IP列表,以及禁止访问的IP服务器的运行模块功能:负责FTP服务器的运行。使用类:CFTPServer类,CApplicationDlg类,CListenSocket类,CConnectThread类,CConnectSocket类各种类的功能:1.CFTPServer类:是
2、CWnd的子类,作为程序的顶层类,负责实现或者调用各个成员函数2.CApplicationDlg类:CDialog类的子类,实现程序主窗口。3.CListenSocket类:负责监听FTP客户端连接,并实现有效连接4.CConnectThread类:负责实现并保证多个连接的有效性。5.CConnectSocket类:实现FTP命令的解析,数据的发送和接收CFTPServer类作为服务器的顶层类,实现服务器开始运行时的所有成员函数申明如下:classCFTPServer:publicCWnd{friendCConnectSocket;//CConn
3、ectSocket作为其友元类,可以访问内部私有数据成员public:voidSetGoodbyeMessage(LPCTSTRlpszText);//发送退出信息voidSetWelcomeMessage(LPCTSTRlpszText);//发送欢迎信息voidSetTimeout(intnValue);//设置暂停时间voidSetPort(intnValue);//设置端口voidSetMaxUsers(intnValue);//设置最大连接数voidSetStatisticsInterval(intnValue);//统计时间间隔BOO
4、LIsActive();//是否有效voidStop();BOOLStart();CFTPServer();virtual~CFTPServer();CUserManagerm_UserManager;//用户管理对象CSecurityManagerm_SecurityManager;//安全策略CFTPServer类最主要的成员函数是start()和stop(),分别负责ftp服务器的开始运行和结束运行函数声明如下:/****************************************************************
5、****//**//*Functionname:Start*//*Description:Startlistiningonport21andacceptnew*//*connections.*//**//********************************************************************/BOOLCFTPServer::Start(){if(m_bRunning)returnFALSE;//如果运行,返回错误标志//createdummywindowformessageroutingif(!CW
6、nd::CreateEx(0,AfxRegisterWndClass(0),"FTPServerNotificationSink",WS_POPUP,0,0,0,0,NULL,0)){AddTraceLine(0,"Failedtocreatenotificationwindow.");returnFALSE;}//开始创建socketif(m_ListenSocket.Create(m_nPort)){//startlisteningif(m_ListenSocket.Listen()){m_ListenSocket.m_pWndServer=
7、this;m_bRunning=TRUE;SetTimer(1,m_nStatisticsInterval,NULL);AddTraceLine(0,"FTPServerstartedonport%d.",m_nPort);returnTRUE;}}AddTraceLine(0,"FTPServerfailedtolistenonport%d.",m_nPort);//destroynotificationwindowif(IsWindow(m_hWnd))DestroyWindow();m_hWnd=NULL;returnFALSE;}/***
8、*****************************************************************//*