本部落格里,若没有特别注明,都是本人原创,转载请注明出处: www.9ri.net
 
 
RSS
 
 
Home » 与IT沾边 » FTP server 制作总结

FTP server 制作总结

张旭 2008-1-8

需求

实现LSPUTGETCLOSE命令。

实现多用户并发访问添加配置文件,可以设置端口、主目录及虚拟目录、最大同时访问数、访问日志参照 socket++ 开源项目,用面向对象的方法实现不能同时上传同名文件,上传中的文件不能被下载配置为 Linux 服务,能自动运行支持命令行方式启动服务:start为启动服务、stop为停止服务捕捉全部 FTP 动作,实时显示

知识准备

文件读写操作

目录操作

C++面向对象知识

SOCKET编程:了解不同程序间收发信息的方法,sendresv,了解阻塞。

FTP协议-RFC959 :了解FTP报文书写原则和相关规定。

FTP通信过程 :使用网络通信捕捉工具,观察通信过程。

多线程: 父进程和子进程关系,僵尸进程。

信号:了解各种信号的产生和处理。

进程间通信:共享内存,信号量,消息队列,管道。文件锁。

守护进程

Linux服务配置:etc/init.d目录

系统日志添加方法

程序制作周期

071260818

开发进度(粗体表示难点)

126熟悉FTP协议RFC959,配置linux ftp服务。

127,利用科来网络分析系统,观察ftp传输过程。

128,实现简单ftp服务端,可根据不同的请求给出相应答复。多线程知识准备。

129,研究ftp主动、被动传输模式。尝试获取传递信息中的关键信息。

1210,研究ftp被动传输模式。研究本机ip地址的获取方法。实现LIST命令的接收和回应。解决端口无法短时间内多次被绑定问题。

1211,完成整个ftp传输过程的观测,画出整个工作流程图。

1212,实现socket类。实现FTP类。

1213,将两个类实例化,实现面向对象ftp基本程序。实现多线程,可以多人同时访问。

1215实现GET命令PUT命令

1216,实现ftp的全部基本功能,LISTPUTGETCLOSE

1217-1223进程间通信的学习,英语四级考试准备。

1224-25日,信号量操作的学习,实现PV操作

1226,共享内存的学习,实现PV类。

1227,利用PV类实现同时在线人数的控制,学习守护进程相关知识

1228,僵尸进程问题的学习。

1229-30日,信号及其通信学习。实现配置文件,实现文件锁功能。

1230实现利用进程间通信控制守护进程的运行

11,完善FTP服务器及相关子类。增加超时断开连接功能

12,配置linux服务,设置为开机自动运行程序

13-7日,期末考试,完善全部功能细节。

18,编写文档和总结。

文件结构

config.txt

配置文件,被main.cpp调用。

FTPS.cpp

FTPS类,被main.cpp调用

FTPS.h

FTPS类头文件,被FTPS.h 调用。

main.cpp

主程序文件,参数: start 开始 stop 停止。守护进程

mk

编译shell指令。

PV.cpp

PV操作类,被FTPS.cpp调用。

PV.h

PV操作类头文件,被PV.cpp调用。

seeMessage.cpp

FTP监控程序,输入FTP安装路径,即可开始监控。

SOCKET.cpp

套接口类,被FTP.cpp调用。

SOCKET.h

套接口类头文件,SOCKET.cpp调用。

本程序安装配置方法

1.   1. 将以上10个文件拷贝到要安装的目录下,假设为 /prefix/

2.     使用任意文本编译器打开config.txt文件,设置ftp_port端口号),main_pathFTP默认上传目录),install_path  = /prefix/online_number(最大支持同时在线人数),logfile_path(日志存放地址)。

3.     配置完毕以后,在终端输入 sh /prefix/mk 编译文件,生成main程序执行文件。

4.     运行程序:./prefix/main start5.     结束程序:./prefix/main stop

Related posts:

  1. 枚举,typedef,预处理
  2. stat.h头文件,轻松获取文件属性。
  3. 用STL快速编写ini配置文件识别类
  4. 网页设计的绚丽和简洁
  5. 《新浪乐居》产品体验之用户中心

 
Tags: , ,
© Hardy.九日志
credit

无觅相关文章插件,快速提升流量