帮助在C++中通过http流式传输

Tra*_*vis 3 c++ streaming curl boost-asio

我希望使用提供流式API的网络服务.这个api通常可以由java方法java.net.URL.openStream();

问题是我正在尝试用C++设计我的程序,并且不知道使用什么库(我听说cUrl库非常擅长这种东西),或者如何使用它们来做我想要的.

我们的想法是,在将文件作为流打开后,我可以实时访问不断更新的数据.

任何帮助将非常感激.

Man*_*uel 6

Boost.Asio socket iostreams似乎就是你所追求的.您的代码将如下所示:

ip::tcp::iostream stream("www.someserver.com", "http");
if (!stream)
{
  // Can't connect.
}

// Use stream as a regular C++ input stream:
std::string text;
std::getline(stream, text);
Run Code Online (Sandbox Code Playgroud)

如果您是C++的新手并且没有使用iostreams的经验,那么这个页面是一个很好的信息来源.特别是,检查istream类的文档以查看Boost.ASIO流将支持哪种操作.您会发现它们与Java IO API中的那些差别不大.

编辑:

Eric是对的,你必须向服务器发送一些请求(使用相同的流),所以它可能与Java的不太相似openStream.以下示例显示了如何发出这些请求:

http://blog.think-async.com/2007_01_01_archive.html