FTP服务器与客户端设计与开发详细设计程序包括5个主要功能:服务器的运行:启动和停止FTP服务用户管理:添加用户,删除用户和设置用户权限服务器配置:设置服务器开放端口,最大连接数等运行统计:统计当前服务器运行时期上传下载的流量等等安全设置:允许连接服务器的IP列表,以及禁止访问的IP服务器的运行模块功能:负责FTP服务器的运行。使用类:CFTPServer类,CApplicationDlg类,onnectSocket类各种类的功能:CFTPServer类:是CWnd的子类,作为程序的顶层类,负责实现或者调用各个成员函数CApplicationDlg类:CDialog类的子类,实现程序主窗口。CListenSocket类:负责监听FTP客户端连接,onnectThread类:onnectSocket类:实现FTP命令的解析,数据的发送和接收CFTPServer类作为服务器的顶层类,实现服务器开始运行时的所有成员函数申明如下:classCFTPServer:Wnd{ onnectSocket;//CConnectSocket作为其友元类,可以访问内部私有数据成员public: voidSetGoodbyeMessage(LPCTSTRlpszText);//发送退出信息 eMessage(LPCTSTRlpszText);//发送欢迎信息 voidSetTimeout(intnValue);//设置暂停时间 voidSetPort(intnValue);//设置端口 voidSetMaxUsers(intnValue);//设置最大连接数 voidSetStatisticsInterval(intnValue);//统计时间间隔 BOOLIsActive();//是否有效 voidStop(); BOOLStart(); CFTPServer(); virtual~CFTPServer(); CUserManagerm_UserManager;//用户管理对象 CSecurityManagerm_SecurityManager;//安全策略CFTPServer类最主要的成员函数是start()和stop(),分别负责ftp服务器的开始运行和结束运行函数声明如下:/********************************************************************//* *//*Functionname:Start *//*Description:eptnew *//* connections. *//* *//********************************************************************/BOOLCFTPServer::Start(){ if(m_bRunning) returnFALSE;//如果运行,返回错误标志 //createdummywindowformessageroutingif(!CWnd::CreateEx(0,AfxRegisterWndClass(0),"FTPServerNotificationSink",WS_POPUP,0,0,0,0,NULL,0)) { AddTraceLine(0,"Failedtocreatenotificationwindow."); returnFALSE; } //开始创建socket if((m_nPort)) { //startlistening if(()) { =this; m_bRunning=TRUE; SetTimer(1,m_nStatisticsInterval,NULL); AddTraceLine(0,"FTPServerstartedonport%d.",m_nPort); returnTRUE; } } AddTraceLine(0,"FTPServerfailedtolistenonport%d.",m_nPort); //destroynotificationwindow if(IsWindow(m_hWnd)) DestroyWindow(); m_hWnd=NULL; returnFALSE;}/********************************************************************//* *//*Functionname:Stop *//*Description:StopFTPserver. *//* *//****************************
FTP服务器与客户端设计与开发 来自淘豆网m.daumloan.com转载请标明出处.