# 简易FTP **Repository Path**: mountisome/FTP ## Basic Information - **Project Name**: 简易FTP - **Description**: 简易FTP - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-14 - **Last Updated**: 2022-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简易FTP #### 1.简要介绍: 这是我们网络编程课程的大作业,任务是设计一个简单的FTP,要求有具有服务器配置功能,服务器不强求界面,服务器需要能够对用户进行账户管理和权限约定;用户客户端通过图形界面和命令行进行连接、数据上传和下载。本FTP系统有客户端和服务器端,能基本实现数据通信、文件上传和下载,权限分为游客、普通用户和系统管理员。游客只能进行消息传输,普通用户可以传输消息和下载文件,系统管理员可以传输消息、下载文件和上传文件。本系统还有很多不足之处,需要改进。 #### 2.技术: - 平台:Dev-C++ 5.11, Qt5.9.0 - 库:winsock #### 3.功能介绍: 命令行: - get:下载文件 格式:get 文件名 - put:上传文件 格式:put 文件名 - dir:显示远方当前目录的文件 - cd:改变远方当前目录和路径 - 进入下一级目录:cd 路径名 - help:进入帮助菜单 - quit:退出系统 图形界面: - 消息发送和接受 - get:下载文件 格式:get 文件名 - put:上传文件 格式:put 文件名 #### 4.使用教程: 命令行: - 首先运行服务器端,然后运行客户端。 - 连接的服务器IP地址为本机地址:127.0.0.1。 - 普通用户输入用户名指令:user user1,输入密码指令:pwd 123456;系统管理员输入用户名指令:admin admin1,输入密码指令:pwd 123456789。 - 输入help可以打开帮助菜单 - 下载文件需要先进入要下载的文件的路径:cd 文件夹,下载文件:get 文件名称,文件最后存放在和客户端相同的路径下。 - 上传文件:put 文件名称,文件从客户端相同的路径上传到服务器相同的路径下。普通用户无法上传文件,只有管理员身份才能上传文件。 - 退出系统:quit。 图形界面: - 在Qt软件中运行FTP项目。 - 登录窗口输入用户名和密码,普通用户的用户名:user1,密码:123456,下拉框选择普通用户;系统管理员的用户名:admin1,密码:123456789,下拉框选择系统管理员;游客登录不需要输入用户名和密码,下拉框选择游客,点击**登录**按钮。 - 点击**连接**按钮进行连接,服务器的端口和IP都是可以进行修改的,这里为默认值。 - 连接成功后可以进行消息传输,上面的为接收窗口,下面的为发送窗口。 - 上传文件:put 文件名,点击发送消息按钮,选择文件,发送文件,文件上传完毕。游客和普通用户无法上传文件,只有管理员有权限上传文件。 - 下载文件:get 文件名,点击发送消息按钮,文件下载完毕。下载文件必须要再次点击连接按钮,因为上传文件成功后连接会断开。游客无法下载文件,普通用户和系统管理员可以下载文件。 - 点击**关闭连接**按钮,退出系统。 #### 5.注意事项: - 本系统在Dev-C++ 5.11上开发,默认编码为ANSI,如果在Visual Studio Code等其他平台上运行可能会出现中文乱码现象,因为其他平台默认为UTF-8编码格式。想要避免此现象可以先用记事本保存代码为UTF-8格式再复制到其他平台上运行。 - 在Dev-C++中运行程序前,需要在Tools中的Compiler Options第一个输入框中加上-lwsock32。 - Qt运行程序需要将文件保存到不含中文的路径下,否则编译不通过。 - Qt上传文件会保存在build-FTP-...文件夹下,不会出现在原来的FTP文件夹下。