C++ 实现 TFTP 简单文件传输程序 - 《计算机网络》课程实验分享
整理了一下当时计算机网络课程实验写的基于 tcp 的文件传输,分为客户端和服务端,支持命令模式。
虽然大学期间 php/js 写的相对来说最多,但是仔细想想自己还是对 C++ 有一种特殊的感情啊(感叹
请多指教
本 readme 及设计文档均已托管至 github
TFTP 简单文件传输
1. 这是什么?
这是我的 计算机网络
课程实验,实验要求通过 tcp 传输文件,基于这个基本的实验要求,我实现了一个可接受多客户端、支持命令的简单文件传输程序。注意,本程序实现的并不是标准 FTP 协议。
2. 它的基本功能是什么?
- 基于
tcp
传输数据 - 支持多客户端连接
- 命令式交互,支持用户输入
- 可列出文件、上传、下载文件
3. 程序的大体设计是怎样的?
源码均在 src
文件夹下,其中 Socket.h
是我自行简单封装的 Socket
类,而客户端和服务端的代码则放在了相应的文件夹中。
其中有一个地方的右值问题依稀记得是使用 std::move 临时解决的,而且列出文件列表也是偷懒直接调用
cmd
指令了(x
具体内容请参见实验报告文档(doc.pdf),关于大体的协议设计、缺点等都在里面有描述。
而较详细的编码过程可以看 git 提交记录和代码。
4. 运行截图
5. 如何编译运行?
编译
由于使用的是
winsock
,g++
不支持lib
库,所以需要使用VS
系编译器编译。
我使用的编译环境为 VS2015
,测试通过。
执行
- 服务端可直接双击运行,不接受参数
- 客户端接受两个参数运行,分别为
服务器ip
,服务器端口
- 具体操作请参见实验报告文档(doc.pdf)
我的博客: https://blog.tamce.cn
我的个人公众号: