总体需求:
编写tcp文件服务器和客户端。客户端可以上传和下载文件。
================================================
分解需求
客户端功能描述:
1)要求支持以下命令:help: 显示客户端所有命令和说明, 在本地实现即可,help的内容不需要从服务器传回。
list: 显示服务器端可下载文件列表,列表内容需要从服务器端传回。
get <filename>: 根据<filename>下载指定文件,<filename>只包含文件名,如果出现"/"等字符任务是路径,不予支持;下载后的文件存放在当前工作路径下即可。
put <pathname>: 上传文件 <pathname> 必须为客户端本机的合法路径,客户端搜索到文件后推送给服务器
quit: 退出客户端
2)客户端启动后可以反复输入命令,除非用户输入quit才会退出。
3) 每次命令(list/get/put)建立一个连接,命令执行完毕后关闭该连接。
服务器端功能:
1)文件服务器不要求支持并发,同时只支持一个连接,即一个客户端发起的一次命令。一次命令执行完毕后关闭连接并继续等待下一次连接请求。2)文件服务器启动后一直执行,除非被人为强制关闭。
3)文件服务器端需要设定一个目录用于存放所有的文件,该目录路径不支持可配置,且该目录不要求再包含子目录。称其为"文件存放目录"。
4)对list服务,服务器端从"文件存放目录"下列举出所有的文件名称并发送给客户端。
5)对get服务,服务器根据用户指定的文件名缺省从"文件存放目录"搜索该文件并推送文件到客户端,推送不会删除原服务器上的文件。
6)对put服务,服务器将用户推送的文件存储到"文件存放目录",如果存在同名的文件则拒绝。
7)若执行命令和传输过