远程传输文件编程之FTP

原创 2015年11月18日 22:30:14

1.ftplib源码下载地址

http://nbpfaus.net/~pfau/ftplib/

2.解压,编译

tarxvf ftplib-4.0.tar.gz

cdftplib-4.0/src

make

生成了 libftp.a libftp.so libftp.so.4 libftp.so.4.0 qftp qftp.static

其中我们编程只需用到libftp.aftplib.h文件


3.函数使用介绍

<1>其它功能

void FtpInit() –初始化库

int FtpSite(const char *cmd, netbuf *nControl) –发送网站命令

char *FtpLastResponse(netbuf *nControl) –找回上回响应

int FtpSysType(char *buf, int max, netbuf *nControl) –确定远程系统的类型

int FtpSize(char *path, unsigned int *size, char mode, netbuf *nControl) –确定远程文件大小

int FtpSizeLong(char *path, unsigned long long *size, char mode, netbuf*nControl) –确定远程文件大小

int FtpModDate(char *path, char *buf, int max, netbuf *nControl) –确定文件的修改时间

int FtpSetCallback(FtpCallbackOptions *opt, netbuf *nControl) –创建一个回调函数

int FtpClearCallback(netbuf *nControl) –删除回调函数


<2>服务连接

int FtpConnect(const char *host, netbuf **nControl) –连接到远程服务器

int FtpLogin(const char *user, const char *pass, netbuf *nControl) –登陆到远程机器

void FtpQuit(netbuf *nControl) –退出远程服务器

int FtpOptions(int opt, long val, netbuf *nControl) –设置连接选项


<3>目录功能

int FtpChdir(const char *path, netbuf *nControl) –改变工作目录

int FtpMkdir(const char *path, netbuf *nControl) –创建目录

int FtpRmdir(const char *path, netbuf *nControl) –删除目录

int FtpDir(const char *outputfile, const char *path, netbuf *nControl) –列出远程目录

int FtpNlst(const char *output, const char *path, netbuf *nControl) –列出远程目录

int FtpCDUp(netbuf *nControl) –改变父目录

int FtpPwd(char *path, int max, netbuf *nControl) –查看当前工作目录


<4>文件到文件传输

int FtpGet(const char *output, const char *path, char mode, netbuf*nControl) –获取远程文件

int FtpPut(const char *input, const char *path, char mode, netbuf*nControl) –发送本地文件到远程

int FtpDelete(const char *fnm, netbuf *nControl) –删除远程文件

int FtpRename(const char *src, const char *dst, netbuf *nControl) –重命名远程文件


<5>文件到程序传输

int FtpAccess(const char *path, int typ, int mode, netbuf *nControl,netbuf **nData) –打开远程文件或目录

int FtpRead(void *buf, int max, netbuf *nData) –读取远程文件或目录

int FtpWrite(void *buf, int len, netbuf *nData) –写入远程文件

int FtpClose(netbuf *nData) –关闭数据连接

返回值:1是成功,0是失败


示例1

将本地文件上传到远程服务器

ftpClient.c


#include <stdio.h>

#include “ftplib.h”


int main()

{

   netbuf *ctrl;

   int ret = 0;

   //初始化

   FtpInit();

   //连接远程的服务器

   ret = FtpConnect(“192.168.20.212:21”, &ctrl);

   if(ret == 1 ) {

        printf(“Ftp Connect Server sucessful\n”);

   } else {

        printf(“Ftp Connect Server Failed\n”);

        return -1;

   }


   //连接方式设置

    ret = FtpOptions(FTPLIB_CONNMODE,FTPLIB_PASSIVE,conn);
   //ret = FtpOptions(FTPLIB_CONNMODE,FTPLIB_PORT,conn);


   //登陆服务器

   ret = FtpLogin(“admin”, “admin”, ctrl);

   if(ret == 1){

        printf(“FtpLogin Serversucessful\n”);

   } else {

        printf(“FtpLogin Server Failed\n”);

        return -1;

   }

   //上传文件到远程服务器

   ret = FtpPut(“ftpClient.c”, “ftpClient.c”, 'I', ctrl);

   if(ret == 1){

        printf(“FtpPut File sucessful\n”);

   } else {

       printf(“FtpPut File Failed: %s\n”FtpLastResponse(conn));

       return -1;

   }

   //退出服务器

   FtpQuit(ctrl);

   return 0;

}


参考文件http://nbpfaus.net/~pfau/ftplib/ftplib.html

版权声明:有不正确的地方,还望各位指正指导,Thanks!

使用 Socket 通信实现 FTP 客户端程序

转载: http://www.ibm.com/developerworks/cn/linux/l-cn-socketftp/index.html#FTP 简介: FTP 客户端如 FlashFX...
  • luliyuan
  • luliyuan
  • 2016年08月26日 09:24
  • 6971

linux下基于tcp的FTP编程

客户端输入: ls :           显示本地文件列表 service  ls:       显示服务器文件列表 upload  xxx:      实现xxx文件读取与上传 download ...
  • sinat_25376319
  • sinat_25376319
  • 2017年07月11日 14:28
  • 563

FTP 传输文件后台代码

最近,做一个生成excel之后,通过ftp文件传输到服务器,并推送到微信。 下面这里是ftp传输的关键代码       /**        * Description: 向FTP服务器上传文件  ...
  • yang_best
  • yang_best
  • 2017年01月12日 13:28
  • 1378

ftp的C++源码实现,可以进行文件传输

  • 2009年02月24日 22:41
  • 252KB
  • 下载

stm32下的ftp服务器

  • 2013年12月21日 09:14
  • 11.03MB
  • 下载

ftp协议c语言实现-linux平台

/*有丰富的注释,很好理解,这是我自己第一次写linux中的网络协议。  * ============================================================...
  • yskcg
  • yskcg
  • 2010年08月23日 16:58
  • 10706

解析 STM32 的启动过程(写的不错)

解析STM32的启动过程 当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被...
  • slj_win
  • slj_win
  • 2013年11月23日 20:47
  • 3655

STM32的FTP服务器

  • 2016年04月22日 22:01
  • 11.03MB
  • 下载

C语言实现ftp客户端

在VS2010新建win32控制台空项目,加入下面代码: ftplib.h: /***********************************************************...
  • feier7501
  • feier7501
  • 2013年08月27日 22:50
  • 12206

使用ftplib 下载文件

#include #include "ftplib.h" netbuf  *con = NULL; static int process(netbuf *nControl, f...
  • du_bingbing
  • du_bingbing
  • 2016年09月08日 11:00
  • 776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:远程传输文件编程之FTP
举报原因:
原因补充:

(最多只允许输入30个字)