⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 在Linux下使用GCC编制的FTP服务器
💻 TXT
字号:
类说明:

	CFtpServer	--	ftp服务器类,提供简单的服务器启动函数Start()。

	CMySocket	--	套接字基类,完成网络通讯的基本功能,CCtrlSocket
					和CDataSocket都派生于此。
	
	CCtrlSocket	--	控制通道类,大部分的工作集中在此类中,CFtpServer
				  	在Start()中循环,每接收一个客户端的连接,就
				  	派生一个子进程和一个CCtrlSocket对象,由CCtrlSocket
				  	对象在子进程中处理与客户端的通讯工作。
	
	CDataSocket	--	数据通道类,CCtrlSocket中包含一个CDataSocket的
				  	成员对象,CCtrlSocket在处理客户的命令过程中,
				  	如果需要数据通道,将调用CDataSocket成员对象的Run函数,
				  	开启一个由CDataSocket包装的子线程,建立数据通道,
				  	完成文件列表、文件上传、文件下载的工作。
				  	
	CFtpUser	--	用户权限与文件管理类,CCtrlSocket包含有一个CFtpUser
					的成员对象,如果CCtrlSocket需要操作本地文件,
					验证用户权限,将调用CFtpUser对象的成员函数。

							
文件说明:

	FtpServer.cpp、FtpServer.h
		--	定义CFtpServer类的头文件和源文件
		
	CtrlSocket.cpp、CCtrlSocket.h
		--	定义CCtrlSocket类的头文件和源文件
	
	DataSocket.cpp、DataSocket.h
		--	定义CDataSocket类的头文件和源文件
	
	FtpUser.cpp、FtpUser.h
		--	定义CFtpUser类的头文件和源文件
		
	Public.cpp、Public.h
		--	对一些库函数头文件的包含
		
	Tools.cpp、Tools.h
		--	对一些常用的工具函数的包装,并且包装到了名字空间
			Tools中
	
	ftpsvr.cfg
		--	服务器启动时的配置参数文件
		
	FtpUser.sql
		--	用于用户和文件权限验证的表结构已经示例数据脚本
		
	readme.txt
		--	说明文档
	
	ftpsvr.prj、ftpsvr.wsp
		--	用于继承编辑环境Magic C++的项目组织文件
	
几点注意:
	1、应该要有僵尸进程清理机制,参看类CFtpServer;
	2、任何时候不要假定客户端一次能够传送一个完整的命令过来,
	   所以服务器端应该要建立接收缓冲区来解析客户命令,参看
	   类CCtrlSocket;
	3、数据通道在传输数据过程中,控制通道要能够正常工作,参看
	   类CCtrlSocket和类CDataSocket;
	4、在PASV模式下的数据通道建立,服务器端需要调用accept等待
	   客户端连接,此时要考虑客户端永不连接过来的极端情况,参看类
	   CDataSocket的Connect()成员函数
	5、在CCtrlSocket中用到了成员指针,不熟悉的话参看红皮书。

	
使用方式:
	1、建议采用Magic C++做为集成编辑环境,我文件夹里面有ftpsvr.prj和ftpsvr.wsp
	   文件,他们是Magic C++类型的项目管理文件,相当于VC++的dsp/dsw
	2、缺省情况下侦听端口号是2121,如果要改为21,请修改ftpsvr.cfg,并以root身份运行;
	3、该ftpsvr设计为用MySQL进行用户验证和文件权限验证,在运行前首先要搭建好MySQL环境、
	   环境、表结构和测试数据,具体操作可根据ftpsvr.sql提示进行,并且ftpsvr.cfg中与MySQL
	   相关的配置要正确。MySQL的安装我采用的是下列安装包,需要的话可以去网上免费下载	
			MySQL-server-5.0.18-0.i386.rpm	//MySQL服务器安装包
			MySQL-client-5.0.18-0.i386.rpm	//MySQL客户端安装包
			MySQL-devel-5.0.18-0.i386.rpm	//MySQL客户端C语言开发接口包

	   但是为了调试方便,提供非MySQL支持的版本,具体操作为:将文件FtpUser.cpp_NonMySQL和
	   makefile_NonMySQL分别改名,覆盖原来的文件FtpUser.cpp和makefile,再编译就可以了。
	4、直接make编译或者在Magic C++环境下编译、运行ftpsvr.
	

		
	
	
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -