项目简介
本项目是基于UDP协议构建的简易FTP系统,实现了文件传输的基础功能。借助自定义协议,模拟TCP的可靠数据传输,支持多用户操作,可实现客户端与服务器间的文件上传、下载以及目录浏览等操作。
项目的主要特性和功能
- 可靠数据传输
- 采用停等协议保障数据包可靠传输。
- 发送端若在规定时间内未收到ACK,会进行重传,确保数据包能成功到达。
- 接收端收到数据包后发送ACK确认,发送端依据ACK更新状态。
- 多用户支持
- 每个用户连接由独立的
server进程
处理,实现多用户并行操作。 - 通过自定义报文标识和状态追踪,模拟TCP的三次握手,避免多用户间相互干扰。
- 每个用户连接由独立的
- 交互命令
ls
命令:查看当前目录及目录下的文件。cd
命令:用于在服务器上切换目录。send
命令:可将客户端文件上传至服务器。get
命令:能从服务器下载文件到客户端。
- 协议语法及时序
- 自定义报文格式,在UDP数据部分添加源端口、目的端口、顺序号和确认号,实现可靠数据传输与多用户支持。
- 发送端和接收端依据当前模式和报文内容,通过有限自动机进行状态切换。
安装使用步骤
1. 下载源码
从项目仓库下载源码文件,并解压到本地目录。
2. 编译项目
在终端中进入项目目录,使用如下命令编译项目:
bash
make
3. 启动服务器
在终端中运行服务器程序:
bash
./server
4. 启动客户端
在另一个终端中运行客户端程序:
bash
./client
5. 使用命令交互
在客户端终端输入以下命令与服务器交互:
- ls
:查看当前目录及文件。
- cd <目录>
:切换到指定目录。
- send <文件名>
:上传文件到服务器。
- get <文件名>
:从服务器下载文件。
6. 示例操作
- 上传文件:
bash send main.cpp
- 下载文件:
bash get hello.py
通过上述步骤,即可成功运行并使用本简易FTP系统进行文件传输和目录管理。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】