张旭 2008-1-8 需求 实现LS,PUT,GET,CLOSE命令。 实现多用户并发访问添加配置文件,可以设置端口、主目录及虚拟目录、最大同时访问数、访问日志参照 socket++ 开源项目,用面向对象的方法实现不能同时上传同名文件,上传中的文件不能被下载配置为 Linux 服务,能自动运行支持命令行方式启动服务:start为启动服务、stop为停止服务捕捉全部 FTP 动作,实时显示 知识准备 文件读写操作 目录操作 C++面向对象知识 SOCKET编程:了解不同程序间收发信息的方法,send,resv,了解阻塞。 FTP协议-RFC959 :了解FTP报文书写原则和相关规定。 FTP通信过程 :使用网络通信捕捉工具,观察通信过程。 多线程: 父进程和子进程关系,僵尸进程。 信号:了解各种信号的产生和处理。 进程间通信:共享内存,信号量,消息队列,管道。文件锁。 守护进程 Linux服务配置:etc/init.d目录 系统日志添加方法 程序制作周期 07年12月6日—08年1月8日 开发进度(粗体表示难点) 12月6日,熟悉FTP协议RFC959,配置linux ftp服务。 12月7日,利用科来网络分析系统,观察ftp传输过程。 12月8日,实现简单ftp服务端,可根据不同的请求给出相应答复。多线程知识准备。 12月9日,研究ftp主动、被动传输模式。尝试获取传递信息中的关键信息。 12月10日,研究ftp被动传输模式。研究本机ip地址的获取方法。实现LIST命令的接收和回应。解决端口无法短时间内多次被绑定问题。 12月11日,完成整个ftp传输过程的观测,画出整个工作流程图。 12月12日,实现socket类。实现FTP类。 12月13日,将两个类实例化,实现面向对象ftp基本程序。实现多线程,可以多人同时访问。 12月15日,实现GET命令PUT命令。 12月16日,实现ftp的全部基本功能,LIST,PUT,GET,CLOSE。 12月17日-12月23日,进程间通信的学习,英语四级考试准备。 12月24日-25日,信号量操作的学习,实现PV操作。 12月26日,共享内存的学习,实现PV类。 12月27日,利用PV类实现同时在线人数的控制,学习守护进程相关知识。 12月28日,僵尸进程问题的学习。 12月29日-30日,信号及其通信学习。实现配置文件,实现文件锁功能。 12月30日,实现利用进程间通信控制守护进程的运行。 1月1日,完善FTP服务器及相关子类。增加超时断开连接功能。 1月2日,配置linux服务,设置为开机自动运行程序。 1月3日-7日,期末考试,完善全部功能细节。 1月8日,编写文档和总结。 文件结构 config.txt 配置文件,被main.cpp调用。
(More)…





No Comments » 