freecplus框架-ftp客户端

本文详细介绍了freecplus开源框架中的Cftp类,用于实现Linux系统的FTP客户端功能。内容涵盖Cftp类的源代码说明、概述、类声明、测试环境准备以及上传、下载和文件列表操作的示例程序。读者需要熟悉ftp协议和Linux操作。
摘要由CSDN通过智能技术生成

一、源代码说明

freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。

本文介绍的是freecplus框架的ftp客户端Cftp类。

Cftp类的声明文件是freecplus/_ftp.h。

Cftp类的定义文件是freecplus/_ftp.cpp。

示例程序位于freecplus/demo目录中。

编译规则文件是freecplus/demo/makefile。

Cftp类是在ftplib开源库的基础之上做了二次封装,ftplib开源库的头文件是freecplus/ftplib.h,函数定义文件是freecplus/ftplib.c。

ftplib是C代码,用gcc先编译成lib库文件后,再用g++和_ftp.cpp以及目标文件一起编译。

二、概述

本文不会介绍ftp协议的基础知识和ftp命令,在阅读本文之前,您必须熟悉ftp协议和命令才能看懂本文的内容。

三、Cftp类

类的声明:

class Cftp
{
   
public:
  netbuf *m_ftpconn;   // ftp连接句柄。
  unsigned int m_size; // 文件的大小,单位:字节。
  char m_mtime[21];    // 文件的修改时间,格式:yyyymmddhh24miss。

  // 以下三个成员变量用于存放login方法登录失败的原因。
  bool m_connectfailed;    // 连接失败。
  bool m_loginfailed;      // 登录失败,用户名和密码不正确,或没有登录权限。
  bool m_optionfailed;     // 设置传输模式失败。

  Cftp();  // 类的构造函数。
 ~Cftp();  // 类的析构函数。

  void initdata();   // 初始化m_size和m_mtime成员变量。

  // 登录ftp服务器。
  // host:ftp服务器ip地址和端口,中间用":"分隔,如"192.168.1.1:21"。
  // username:登录ftp服务器用户名。
  // password:登录ftp服务器的密码。
  // imode:传输模式,FTPLIB_PASSIVE是被动模式,FTPLIB_PORT是主动模式,缺省是被动模式。
  bool login(const char *host,const char *username,const char *password,const int imode=FTPLIB_PASSIVE);
  
  // 注销。
  bool logout();

  // 获取ftp服务器上文件的时间。
  // remotefilename:待获取的文件名。
  // 返回值:false-失败;true-成功,获取到的文件时间存放在m_mtime成员变量中。
  bool mtime(const char *remotefilename);

  // 获取ftp服务器上文件的大小。
  // remotefilename:待获取的文件名。
  // 返回值:false-失败;true-成功,获取到的文件大小存放在m_size成员变量中。
  bool size(const char *remotefilename);

  // 改变ftp服务器的当前工作目录。
  // remotedir:ftp服务器上的目录名。
  // 返回值:true-成功;false-失败。
  bool chdir(const char *remotedir);

  // 在ftp服务器上创建目录。
  // remotedir:ftp服务器上待创建的目录名。
  // 返回值:true-成功;false-失败。
  bool mkdir(const char *remotedir);

  // 删除ftp服务器上的目录。
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值