代码之家  ›  专栏  ›  技术社区  ›  Joey Adams

在C++中异步下载HTTP URL

  •  4
  • Joey Adams  · 技术社区  · 15 年前

    下载HTTP URL的好方法是什么(例如 http://0.0.0.0/foo.htm )Linux上的C++?我非常喜欢异步的。我的程序将有一个事件循环,它反复启动多个(非常小的)下载,并在下载完成时(通过轮询或以某种方式被通知)对其进行操作。我宁愿不生成多个线程/进程来完成这一点。这不应该是必要的。

    我应该像libcurl那样研究图书馆吗?我想我可以通过非阻塞的TCP套接字和select()调用手动实现它,但这样做可能不太方便。

    4 回复  |  直到 8 年前
        1
  •  7
  •   Matt    15 年前

    Libcurl是一条必经之路。见 http://curlpp.org 对于C++绑定和一组优秀的教程。

        2
  •  9
  •   Alexander Malakhov Rahul R Dhobi    8 年前

    你可以使用 boost::asio 执行异步IO操作。这是一个例子 async http client .

        3
  •  1
  •   Donotalo    15 年前

    你考虑过吗 Qt's network module ?例如,它们为异步下载提供了一些类 QNetworkAccessManager .

        4
  •  0
  •   Ankur Gupta    14 年前

    qt的qthread实例在运行时可以有自己的事件循环。在qthread中,您可以有一个qhttp实例,因为qhttp使用qt事件循环来运行,所以您可以从邮件线程进行异步HTTP调用。还要注意,线程间通信非常容易。

    直奔 http://doc.qt.nokia.com 并查看类的文档以更好地理解。