2012-01-15 93 views
6

简单的http服务器文件夹有什么好的选择?它不需要高性能。我宁愿寻找一些简单的REST/JSON通信(“API”)。简单的HTTP服务器库文件

它必须能够在多线程环境中工作,并且必须能够处理较大的POST请求。

有什么建议吗?我已经尝试过cpp-netlib,但是这对于这样一个简单的任务似乎太复杂了......

编辑:我正在寻找一些真正轻量且简单的东西。例如。像Ruby世界中的Sinatra一样。波科对我来说是另一个重量过重的图书馆的例子。

+1

可能重复的[开源C/C++嵌入式Web服务器(HTTP://计算器.com/questions/738273/open-source-cc-embedded-web-server) – 2012-01-15 02:05:32

+1

@MK。确实如此,但这是2009年的一个封闭问题,现在的情况可能会有所不同。波科不在那里,例如。尽管最近可能有/其他/问题! – Stefano 2012-01-15 05:21:14

+0

也许检查http://stackoverflow.com/questions/7980006/http-and-https-server-library-for-c - 这真的是最近。 – Stefano 2012-01-15 05:24:37

回答

10

出现在脑海的第一个是波科库(http://pocoproject.org/

跨平台的,稳定的,有据可查。虽然图书馆本身提供的资源可能超过您可能需要的数量,但您可以构建并省略您不打算用于减少膨胀的部分。

他们有一个全功能的网络库,其中包括几个显着的类和实用程序。

下面是从图书馆幻灯片的PDF,特别感兴趣的是HttpServer类: http://pocoproject.org/slides/200-Network.pdf

+0

看起来像一个伟大的图书馆,但我正在寻找更轻量化的东西。 – Philip 2012-01-15 12:52:30

3

我会鼓励你开始用Boost.Asio的http服务器样本。它们非常简单易懂,您可以根据需要轻松扩展它们。

但是,如果你想跳上东西不仅仅是示例代码更完美,我知道在C++ 3台HTTP服务器,你可能想尝试:

  • “X0 - HTTP Web服务器框架”,以我个人这一次似乎最有前途的,因为它是轻量级的,简单
  • “大功率/ XIVA”是发送通知到浏览器
  • 一个简单的HTTP服务器框架
  • “介子,原子能实验室的一个项目”是精心设计的框架的一部分用于处理大量数据
+0

谢谢,这个提升示例代码是目前我最喜欢的解决方案!这个代码作为一个库和我所有的愿望将会实现... – Philip 2012-01-15 12:56:04

+0

很重要的是要将这些示例更改为库代码:将'int main()'变成线程函数并在其自己的线程中启动它;添加到server.hpp函数'“void stop(){io_service_.stop();}'并且正确地暴露它。然而,正如我刚才所说的那样,这些样本有点未抛光,例如连接中的套接口关闭可能会丢失发送的数据等等 – bronekk 2012-01-16 12:17:55

0

个人而言,我会去Arachnida(http://arachnida.sf.net),但这可能是因为我写了它。