远程传输文件编程之FTP

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值