这是--Linux程序设计--的一个大实验,虽然平时听课还算认真,但一直没时间来具体实现这个小的FTP。不是说实践是检验真理的唯一标准嘛,这个周末刚好闲来无事,就把它实现了吧。
下面是要求:
基于客户/服务器交互模式,采用TCP/IP通信协议,实现以支持远程文件传输的客户/服务器软件,支持文件的上传和下载。其中客户端软件命名为myftp,服务器软件命名为ftpserver
服务器
启动方式:执行 >ftpserver [IP地址] port 启动FTP服务
其中IP地址为可选项,如不提供服务器IP地址,FTP服务将自动绑定到本地网络的IP。
用户认证与权限管理:为FTP客户提供基于用户名/密码认证的服务模式,只有授权用户才可以对指定文件进行读写操作。用户只有在具备写权限操作的目录上才能上传文件。(可直接集成linux服务器系统的用户管理)
并行执行功能:要求服务器采用多进程/线程技术响应客户请求。当客户通过身份验证后,服务器将创建一个新的进程/线程来响应用户请求,提供服务。
服务传输模式:支持二进制(默认)和ASCII传输模式。用户可通过执行binary/ascii命令切换传输模式。
服务器支持的客户文件操作:登录成功后,客户可在服务器执行以下操作:创建/删除目录(mkdir/rmdir)、显示当前路径ÿ