Skip to content

pigLoveRabbit520/flyf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8743677 · May 23, 2021

History

90 Commits
May 23, 2021
Feb 2, 2021
Jul 3, 2018
Jun 29, 2018
May 23, 2021
Feb 11, 2021
Jul 2, 2018
Feb 11, 2021
Jul 2, 2018
Jun 6, 2018
Jun 26, 2018
Feb 11, 2021
May 23, 2021
Jul 2, 2018

Repository files navigation

flyf

简单 FTP 客户端,取名含义 fly+ftp,飞快的 ftp

使用

  1. make 编译代码
  2. ./ftp ip port 连接 ftp 服务器

常见 FTP 命令

  • open - 连接 ftp 服务器。
  • help或?- 列出所有可用的 FTP 命令。
  • cd - 切除远程计算机上的目录。
  • lcd - 切换本地计算机上的目录。
  • ls - 列出当前远程目录中的文件和目录的名称。
  • mkdir - 在当前远程目录中创建一个新目录。
  • pwd - 打印远程计算机上的当前工作目录。
  • delete - 删除当前远程目录中的文件。
  • rmdir - 删除当前远程目录中的目录。
  • get - 将一个文件从远程复制到本地计算机。
  • mget - 将多个文件从远程复制到本地计算机。
  • put - 将一个文件从本地复制到远程计算机。
  • mput - 将多个文件从本地复制到远程计算机。

已支持的命令

  • ls 显示服务端文件列表
  • lls 显示本地文件列表
  • pwd 显示服务端工作目录
  • lpwd 显示本地工作目录
  • cd 更改服务端工作目录
  • lcd 更改本地工作目录
  • get 下载文件
  • put 上传文件
  • delete 删除服务端文件
  • ascii 更改传输模式为 ASCII
  • binary 更改传输模式为 BINARY
  • mkdir 服务端新建文件夹
  • help 帮助信息
  • open 连接服务端
  • exit 退出程序

问题总结

  • 打开 data socket 后(passive mode),IIS FTP server 对LIST(其他要传输数据的命令也一样)返回125,vsftpd 返回150
  • close 不一定会立即关闭 socket 发送 FIN 段(譬如 socket 被不同进程共享),可以用 shutdown 解决
  • TCP 是流式协议,接收端收到的数据不一定等于发送端发送的数据
  • FTP 会有多行消息,三位数字编码的响应码加上-,结束行就是该响应码加上空格

TODO

  • fix bug
  • 优化代码结构

参考文章

About

linux C实现的简单FTP客户端

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages