(P15)miniftpd项目实战15:实现一些杂项命令

1.实现一些杂项命令

  • 模拟vsftpd使用CWD命令的方式,服务端会给客户端一个250的应答
    在这里插入图片描述

  • vsftpd的CDUP指令的操作为:
    客户端输入ctrl r
    在这里插入图片描述
    在这里插入图片描述

接着刷新一下
在这里插入图片描述
刚开始在cppcourse目录里面,现在在cppcourse目录外面
在这里插入图片描述

  • eg:
实现的命令有:CWD,CDUP
static void do_cwd(session_t *sess)
static void do_cdup(session_t *sess)
  • vsftpd创建一个目录
    在这里插入图片描述
    在这里插入图片描述
    创建目录成功,给客户端一个257的应答
    在这里插入图片描述
  • eg:
static void do_mkd(session_t *sess)
  • 测试:在tt文件夹内创建文件夹失败的情况
    首先去掉tt文件夹w权限
    在这里插入图片描述

创建文件夹失败的情况
在这里插入图片描述
会提示550失败了
在这里插入图片描述

  • vsftpd删除一个文件
    在这里插入图片描述
    DELE 绝对路径/相对路径
    删除过后,会给客户端一个250的应答
    在这里插入图片描述
  • eg:
static void do_dele(session_t *sess)
  • 测试:
    删除成功
    在这里插入图片描述
    在这里插入图片描述
  • eg:
static void do_rmd(session_t *sess)
  • 测试:删除一个文件夹
    若文件夹下面还有文件夹或者文件,但是这里没有实现递归删除文件及文件夹,这是因为我们只需要解析RMD命令即可,因为客户端会来删除,比如有一个tt文件夹,下面有aaa文件夹,客户端会删除,服务端只要做好命令解析即可
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • eg:

static void do_rest(session_t *sess)
  • 测试:REST指令
    在这里插入图片描述
    在这里插入图片描述

  • eg:

static void do_size(session_t *sess)
  • 测试:测试tt.cc的大小
    在这里插入图片描述
    在这里插入图片描述

  • eg:

static void do_rnfr(session_t *sess)
static void do_rnto(session_t *sess)
  • 测试重命名功能:
    在这里插入图片描述
    在这里插入图片描述
    重命名成功
    在这里插入图片描述
    如果在重命名之前,服务端没有收到RNFR命令,会给客户端一个503的应答
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢打篮球的普通人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值