热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用curlmultiinterface编写的高性能封装类和示例

CurlMultiDemo使用libCurl的MultiInterface的一个简单封装类,支持功能:单线程纯异步的GetPost支持极高的性能(使用POST上传600文件,仅耗时


CurlMultiDemo
  • 使用 libCurl 的 Multi Interface 的一个简单封装类,支持功能:


    • 单线程 + 纯异步 的 Get/Post 支持
    • 极高的性能(使用 POST 上传 600+ 文件,仅耗时4~6秒)
      在这里插入图片描述
  • 使用方式:


    • 1.编译或下载 libcurl 库, 我采用的是 vcpkg
    • 2.搭建或找一个支持 MultiPart 上传文件的服务器, 如没有,可以使用 vertx-upload
    • 3.Visual Studio(2015) 打开工程, 按需更改 CCurlMultiDemo::_curlMgr_multiPartPost 中的以下部分:
      • fileFinder.Find(TEXT(“D:\vcpkg\installed\”) <&#61;&#61; 从该目录下扫描指定格式的所有文件,更改成自己想要的目录
      • strUrl &#61; TEXT(“http://127.0.0.1:8080/form”) <&#61;&#61; 文件将被 POST 上传到以下路径
    • 4.运行程序, 即会扫描目录,并上传文件, 最后弹出对话框,显示长传文件数量和耗时.
    • 5.如有问题, Debug 模式下应该有断言, 或者可以查看 %LOCALAPPDATA%\Temp\FTL 目录下的日志文件
  • 注意:


    • 由于是业余时间学习过程中编写,而且没有应用到实际项目代码中,因此尚不完善,而且可能存在问题(如 逻辑错误或内存泄露等),请小心使用,发现问题也可以提 PR.
  • 补充:
    ut_files 下的文件是我原本的 UT 文件和部分笔记(包括安装说明), 可以参考

代码位置: https://github.com/fishjam/CurlMultiDemo







推荐阅读
  • 图像因存在错误而无法显示 ... [详细]
  • 原文转自:http:blog.csdn.netchinasoftosgarticledetails7903045UploadAction.java:packagecr ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  • 在tp5项目中引入ueditor编辑器并实例化后插入图片出现目录创建失败问题在查看网络上各种解决方案之后总结如下:根据官网提示主要是因为图片保存的路径无权限导致,官方文档链接:ht ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
  • [分享]用于Asp.Net的敏感内容评审控件
    引言之前在这篇文章中分享了敏感内容评审类及其辅助工具:http:www.cnblogs.comSkyDarchive200908211551112.html此次分享的工具是在 ... [详细]
  • UEditor可以如何直接复制word的图文内容到编辑器中
    这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)j ... [详细]
author-avatar
叨B叨B叨叨叨
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有