课程设计是实现FTP客户端和服务端。
FTP
实验内容
我实现了FTP的客户端和服务端,除了PUT、GET、?等还实现了SITE、MKD、RMD、RNFR、SIZE等大量命令,以及active/passive模式的切换、ascii/image类型的RETR等。
客户端
源代码为src/client/目录及src/*.cc,src/*文件为客户端与服务端共用。
命令行选项帮助
% build/ftp -h
FTP client.
Usage: build/ftp [options] [uri]
Options:
-d, --debug
-h, --help display this help and exit
-q, --quiet
Report bugs to i@maskray.me
命令行提示符
使用了ANSI escape code产生颜色。
命令行补全
使用了readline库进行命令补全,相关代码在src/client/completion.cc里。如下终端会话为键入了命令的开头字母后按TAB补全得到的。
% build/ftp 127.1
ftp >>= l
list login ls
ftp >>= m
md mkdir
cat命令
以ASCII data type显示服务端文件。
ftp /upload >>= cat ii
ddfsdafffffffffffffffffffffffffffffffffffffff
命令行选项:-d 调试