http post&得到阻止通话?

时间:2011-04-29 10:40:36

标签: c++ http post curl blocking

我在php中看到了大多数http代码。

我准备使用CURL在c ++中编写一些http调用 想知道http是否固有阻塞(反对非阻塞) IE,当你发送get / post消息时,你的线程被阻塞,直到得到响应?

如果不是,有没有办法用CURL执行非阻塞的http get或post?

谢谢

1 个答案:

答案 0 :(得分:1)

HTTP是一种协议,因此它本身不会阻塞或不阻塞。在HTTP中,唯一类似于“阻塞行为”的是你不能在同一个管道中同时发送两个请求或两个响应 - 你必须等待请求完成才能发送另一个请求。

所以关于阻塞操作的真正问题应该是关于CURL - 它是否允许非阻塞IO?

答案是libcurl有一个叫做“多接口”的东西,它可以让你无阻塞地使用它: http://curl.haxx.se/libcurl/c/libcurl-multi.html

如果您更喜欢专为异步IO设计的库,可以查看Boost.ASIO。我自己从未使用它,但似乎很受欢迎: http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio.html