gpt4 book ai didi

c++ - http post & get 正在阻止调用?

转载 作者:行者123 更新时间:2023-11-28 08:21:02 33 4
gpt4 key购买 nike

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

我打算使用 CURL 在 C++ 中编写一些 http 调用。
想知道 http 是否本质上是阻塞的(与非阻塞相反)。
IE,当你发送 get/post 消息时,你的线程被阻塞直到它得到响应?

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

谢谢

最佳答案

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

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

答案是 libcurl 有一个叫做“多接口(interface)”的东西,它使您可以无阻塞地使用它: 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

关于c++ - http post & get 正在阻止调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5830998/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com