c++ - boost HTTP 服务器问题

标签 c++ http boost boost-asio

我开始使用 Boost,所以可能是我搞砸了。

我正在尝试使用 boost (ASIO) 设置 http 服务器。我从文档中获取了代码:http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/examples/cpp03_examples.html (HTTP服务器,第一个)

与示例的唯一区别是我通过自己的方法“run”运行服务器并在后台线程中启动 io_service,如文档中所示:http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/reference/io_service.html

boost::asio::io_service::work work(io_service_);

(我也从我的运行方法中停止了 io_service。)

当我启动这个修改后的服务器时,一切似乎都正常,运行方法工作正常。但是后来我试图从服务器获取文档请求挂起并且控制流永远不会到达“request_handle”方法。 我错过了什么吗?

更新。这是我的运行方法代码:

void NetstreamServer::run()
{
  LOG4CPLUS_DEBUG(logger, "NetstreamServer is running");
  boost::asio::io_service::work work(io_service_);
    try
    {
      while (true)
      {
        if (condition)
        {
          io_service_.stop();
          break;
        }
      }
    }
    catch (std::exception const& e)
    {
      LOG4CPLUS_ERROR(logger, "NetstreamServer" << " caught exception: " << e.what());
    }
}

最佳答案

你应该调用io_service_::run() - 否则没有人会分派(dispatch) io_service_ 服务的 Asio 对象的完成处理程序。

关于c++ - boost HTTP 服务器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18792446/

相关文章:

c++ - 制作结构数组?

本地主机上的 Java 无效 HTTP 响应

c++ - CMake 在我的主机中找不到用于交叉编译器的 boost 库,但在 Raspberry Pi 中找到了

c# - System.Net.HttpListener (C#) 的最大 URL 长度

javascript - Controller 内部 undefined variable ($scope 问题)

c++ - 在哪里可以找到 boost::fusion 文章、示例、指南、教程?

c++ - Boost 程序选项中的 vector 参数

c++ - 在 QTreeView 中获取选中的元素

c++ - 在 OpenCV 中使用 High Profile 从 High Profile mp4 文件编写 H.264 视频

c++ - 使用一个 for 循环如何迭代和测试迭代器值?