分享

libcurl

 lao_o 2010-07-23
 

觉得找一个好用的C/C++ socket库很难。直接写API总是很痛苦的,繁琐易错。w3c的libwww已经停止开发;一些大的库,比如GNU的Common C++和wxWidgets等都有socket类,但不是很专,并不好用;ACE值得一学,不过实在是复杂,有些情况下用起来真可怕。以前看过一阵libcurl,也不记得是哪位师兄推荐的了(this?),正好昨天跟康总讨论这个到深夜,干脆这次慢慢来玩玩,测一下在Windows和Mac OS X下的表现如何。


libcurl移植性很好,几乎所有流行的操作系统都有移植。它应该说是相对高层的库,不直接操纵socket。按它的介绍,libcurl is a free and easy-to-use  client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, GOPHER,  TELNET, DICT, FILE and LDAP. libcurl supports HTTPS certificates, HTTP POST,  HTTP PUT, FTP uploading, kerberos, HTTP form based upload, proxies, cookies,  user+password authentication, file transfer resume, http proxy tunneling and more!


我的印象是libcurl主要支持两套操作API,同步和异步的。异步的估计是用select来做的多路分离,不过还没仔细看源代码,不敢确定。libcurl有各种语言的binding,不过我还是最喜欢C的,它本身也是基于C的,所以以后也只讨论C版本的libcurl。


以前我在Mac OS X和Red Hat 9下build过,没有任何问题。不过我不记得在Mac OS X下是用fink或是opendarwin做,还是直接build,什么时候还得重新看看。今天主要在Windows下试了试,包括cygwin和Visual C++。简单倒是简单,只是还是犯了些土鳖错误折腾了好久。明天继续把build的过程写一下吧。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多