curl_easy_setopt的基本选项解析

参考菜鸟教程中python的curl相关的知识

断点续传功能的开发

断点续传C++---代码写的很好看

//编译方法:  g++ sftpDownload.cpp -lcurl
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h> // 这里不是#include <curl.h>
#include <iostream>
using namespace std;
#undef DISABLE_SSH_AGENTstruct FtpFile
{const char *filename;FILE *stream;
};static size_t my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
{struct FtpFile *out = (struct FtpFile *)stream;if (out && !out->stream){out->stream = fopen(out->filename, "wb");if (!out->stream)return -1;}int ret = fwrite(buffer, size, nmemb, out->stream);cout << "size  = " << size << ", nmemb = " << nmemb << endl;return ret;
}int main(void)
{CURL *curl;CURLcode res;const char *urlkey = "muten:123456";                                       //服务器用户名及密码const char *ServerIpPath = "sftp://192.168.244.139:22/home/muten/test001"; // 这里是否加端口都可以/*这里ServerIpPath的值可以为以下四个:【sftp://192.168.244.139:22/home/muten/new.zip】【sftp://192.168.244.139/home/muten/new.zip】【sftp://192.168.244.139//home/muten/new.zip】【sftp://192.168.244.139///home/muten/new.zip】*/struct FtpFile ftpfile = {"/home/muten003/test001", NULL}; // 这里必须写下载到本机之后的文件名,不能用路径来代替,否则会报错curl_global_init(CURL_GLOBAL_DEFAULT);curl = curl_easy_init();if (curl){curl_easy_setopt(curl, CURLOPT_URL, ServerIpPath);curl_easy_setopt(curl, CURLOPT_USERPWD, urlkey);curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite);curl_easy_setopt(curl, CURLOPT_WRITEDATA, &ftpfile);#ifndef DISABLE_SSH_AGENTcurl_easy_setopt(curl, CURLOPT_SSH_AUTH_TYPES, CURLSSH_AUTH_PASSWORD);
#endifcurl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);res = curl_easy_perform(curl);curl_easy_cleanup(curl);if (CURLE_OK != res){fprintf(stderr, "curl told us %d\n", res);}}if (ftpfile.stream){fclose(ftpfile.stream);}curl_global_cleanup();return 0;
}

依赖libcurl库实现sftp的下载功能相关推荐

  1. 苹果库乐队怎么玩_ios库乐队旧版本下载-苹果库乐队12版本下载1.0 免费版

    免费的音乐服务app,在上面你可以轻松查看许多的音乐内容,随时随地知晓各种不同的音乐项目,各种不同的乐器可以自由搭配选择,超多种类的音效可以随意组合,可以和你的好友一起分享你喜欢的音乐哦. 库乐队设置 ...

  2. [Swift]在不依赖三方库的情况下如何异步下载和缓存图片?

    在可滚动视图(如UITableView)中异步加载大量图片是一个很常见的任务. 然而,在图片正在下载的同时又要保持应用程序流畅滚动,可能有点挑战. 许多开发人员依靠像Alamofire和SDWebIm ...

  3. python sftp_Python使用sftp实现上传和下载功能(实例代码)

    在Python中可以使用paramiko模块中的sftp登陆远程主机,实现上传和下载功能. 1.功能实现 根据输入参数判断是文件还是目录,进行上传和下载 本地参数local需要与远程参数remote类 ...

  4. linux libcurl 库使用方法

    一.ibcurl简介 作为是一个多协议的便于客户端使用的URL传输库,基于C语言,提供C语言的API接口,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, I ...

  5. 网络编程知识预备(5) ——libcurl库简介及其编程访问百度首页

    本文为学习笔记,整合课程内容以及下列文章: 其中,libcurl函数库常用字段解读部分: 参考博文:原文地址 作者:冬冬他哥哥 目录 Libcurl库简介 Libcurl等三方库的通用编译方法 三方库 ...

  6. C++ 用libcurl库进行http 网络通讯编程

    一.LibCurl基本编程框架 libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议.libcurl ...

  7. Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 libcurl是什么? libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当 ...

  8. iMX6UL开发板移植libcurl库

    前言 libcurl 是一个功能全面的客户端 URL 传输库,支持常见的各种传输协议(官方介绍),并且具有高可移植性,命令行工具 curl 就是使用的这个库.在嵌入式开发板上,有 http/https ...

  9. Http之libcurl库实现

    原文转载:冬冬他哥哥 仅做笔记参考,代码看不清的请直接跳原文 http协议之详解(点) http协议之https(点) http协议之libcurl(点) 一.libcurl简介 libcurl是一个 ...

最新文章

  1. Python正则表达式的7个使用典范
  2. caffe检测图片是否包含人脸_caffe入门-人脸检测1
  3. SAP Cloud for Customer的微信集成原型开发完毕后的效果示意图
  4. 操作系统时间片轮换_操作系统   时间片轮转法
  5. STM8单片机串口同时识别自定义协议和Modbus协议
  6. JDK动态代理入门、JDK动态代理原理、为什么JDK动态代理是基于接口的
  7. springboot 2中文手册_基于spring boot的JAVA开源商城系统实战,后台管理系统免费分享...
  8. Kali Linux渗透测试——WEB渗透(二)
  9. MCSA 70-740 windows 安装和部署工具汇总学习
  10. 内网穿透工具--NPS
  11. 暑期作息时间表模板_暑假作息时间表
  12. 移植u-boot到树莓派
  13. 网页端播放视频加速方法
  14. word没有显示endnote_word没有endnote加载项 endnote word加载项
  15. 《狂飙》壁纸大嫂如此惊艳,做成日历壁纸天天看
  16. Android毛玻璃效果实现
  17. 广和通实现基于5G R16模组的FWA Open CPU方案技术突破
  18. Arduino与Proteus仿真实例-ULN2003驱动直流电机仿真
  19. 【Spring】IDEA中创建Spring项目
  20. OpenWrt 版本发展历史简介

热门文章

  1. Oracle MONTHS_BETWEEN函数
  2. C# DialogResult.OK == Form.ShowDialog()
  3. TMS320F28377D.cmd文件分析
  4. 《那些年啊,那些事——一个程序员的奋斗史》——105
  5. PPTV大数据基础平台升级总结
  6. 魔术唤醒_用户友好的魔术链接
  7. tomcat服务器部署404问题解决方案
  8. Telnet在Windows7下的安装
  9. 备份 Hexo 博客(精简版)
  10. VERSA VGG-4422-U-A240有一种幸福叫微笑