实习期间用到了libcurl来做HTTPS双向认证,用的是异步方式,简单总结一下。
libcurl这个库的同步方式很简单,不做介绍,而异步方式很难理解,本博客参考官网的demo讲解,刚开始看可能很蒙,最后会整合全流程。
使用步骤如下:
1.初始化创建一个multi句柄:
CURLM *multi = curl_multi_init();
2.对multi句柄设置socket回调和timer回调:
curl_multi_setopt(multi, CURLMOPT_SOCKETFUNCTION, multi_sock_cb);
curl_multi_setopt(multi, CURLMOPT_SOCKETDATA, ¶m);
curl_multi_setopt(multi, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
curl_multi_setopt(multi, CURLMOPT_TIMERDATA, ¶m);
3.对multi句柄添加easy句柄,异步开始:
CURL *easy = curl_easy_init();
curl_easy_setopt(conn->easy, CURLOPT_URL, url);
curl_easy_setopt(conn->easy, CURLOPT_WRITEFUNCTION, write_cb); // 负责读入数据的函数
curl_easy_setopt(conn->easy, CURLOPT_WRITEDATA, &data

本文介绍了使用libcurl进行HTTPS双向认证的异步操作步骤,包括初始化multi句柄、设置socket和timer回调、添加easy句柄。通过伪代码展示了libcurl如何在socket状态变化时调用回调函数,实现HTTP请求的发送和响应数据的接收。建议读者通过运行官方demo和查看日志来深入理解。
最低0.47元/天 解锁文章
1004

被折叠的 条评论
为什么被折叠?



