freecplus框架-ftp客户端

一、源代码说明

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服务器上的目录。
  // 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

C语言技术网-码农有道

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

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

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

打赏作者

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

抵扣说明:

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

余额充值