远程传输文件编程之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!

相关文章推荐

文件传输协议FTP、SFTP和SCP

网络通信协议分层和文件传输协议FTP、SFTP和SCP的使用。
  • Geurney
  • Geurney
  • 2015年09月11日 07:53
  • 14564

linux下基于tcp的FTP编程

客户端输入: ls :           显示本地文件列表 service  ls:       显示服务器文件列表 upload  xxx:      实现xxx文件读取与上传 download ...

VC++实现FTP编程

VC++实现FTP编程 一.概述 TCP/IP协议是一个四层协议,它由应用层、传输层、网络层和链路层构成。 TCP/IP协议栈的每一层都由许多协议构成,从而构成了一个协议簇。 应用层主要...

FTP通信过程分析

原文地址:http://hi.baidu.com/thezenger/blog/item/f4c8b929edca1721d42af1b0.html FTP通信过程分析 2010-04-0...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

LWIP netbuf netconn函数

http://wenku.baidu.com/view/d49a3a2bbd64783e09122b3f.html### 缓冲区函数 函数名称 功能 原型 ...

ftp put 到指定的远程目录

ftp put 到指定的远程目录

Python实现FTP传输

Python实现FTP传输,上传或下载文件和文件夹。

Linux 使用ftp命令进行远程文件传输

使用ftp命令进行远程文件传输 ftp命令是标准的文件传输协议的用户接口。ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII文件和二进制文件。在ftp会话过程中...

第二弹——SSH远程连接和FTP文件传输

上一篇介绍如何获得一台阿里云的云服务器ECS,拿到服务气候,我们就需要进行一些操作了,毕竟服务器不在身旁,你不能直接访问服务器,所以你必须要与服务器建立连接这样服务器才算是你的。所以这篇就讲讲ssh远...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:远程传输文件编程之FTP
举报原因:
原因补充:

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