curl_easy_perform()是同步还是异步?

时间:2013-03-09 14:16:21

标签: c++ curl libcurl

我正在使用curl发送POSTGET个请求,我使用回调函数来获取这些请求的回复。这些callback函数是静态成员函数,它们又调用非静态成员函数(您不能直接在curl中使用非静态成员函数,因此这种解决方法)。

由于这些回调函数无法返回结果,因此我使用C ++类中的属性来存储回复。这一切都很好,但现在我的问题。 curl_easy_perform()阻塞直到整个请求被发送并且回复由回调函数处理或者我的程序在curl_easy_perform()之后继续并且当收到来自请求的回复时它是否以某种方式被中断?

对我来说,重要的是我要确保我的属性中应该包含回复的数据已经存在,或者该属性中是否仍有旧数据,因为回调函数没有'但是被称为。

我意识到我的解释不是很清楚所以如果你不明白,请告诉我,我会试着改写它。

谢谢!

1 个答案:

答案 0 :(得分:15)

  

curl_easy_perform()会阻塞,直到整个请求发送为AND   回复由回调函数处理

是的,完全它的作用。

(如果你想要一种非阻塞行为,libcurl's multi interface就是你的选择。)