小编ole*_*man的帖子

在 async_resolve 上取消操作

我对 C++ 有一些小经验,并且在使用 boost-asio 时遇到了一些问题。我想重写标准升压ASIO异步HTTP客户端的例子(http://www.boost.org/doc/libs/1_58_0/doc/html/boost_asio/example/cpp03/http/client/async_client.cpp中)以下方式。

我的目标是有 2 个班级;

  1. AsyncHttpClient(存储主机并具有将异步调用发送到指定路径的成员函数)。
  2. AsyncHttpConnection(以 io_service、host、path 作为参数并遵循 boost-asio async-http-client 示例中指定的流程)

我有以下实现

using boost::asio::ip::tcp;

class AsyncHttpConnection {
    public:
        AsyncHttpConnection(
            boost::asio::io_service& io_service,
            std::string host,
            std::string path) : resolver_(io_service),
                                socket_(io_service),
                                host_(host),
                                path_(path)
        {
            tcp::resolver::query query(host_, "http");
            resolver_.async_resolve(query,
                boost::bind(&AsyncHttpConnection::handle_resolve,
                    this,
                    boost::asio::placeholders::error,
                    boost::asio::placeholders::iterator));
        }

    private:
        std::string host_;
        std::string path_;
        tcp::resolver resolver_;
        tcp::socket socket_;
        boost::asio::streambuf request_;
        boost::asio::streambuf response_;

        void handle_resolve(
            const boost::system::error_code& err,
            tcp::resolver::iterator endpoint_iterator)
        {
            if (!err) {
                // code here
            } else {
                std::cout << err.message() << …
Run Code Online (Sandbox Code Playgroud)

c++ boost-asio c++11

3
推荐指数
1
解决办法
1103
查看次数

标签 统计

boost-asio ×1

c++ ×1

c++11 ×1