相关疑难解决方法(0)

如何使用Boost :: asio异步读取到std :: string?

我正在学习Boost :: asio和所有异步的东西.如何异步读取user_std :: string类型的变量?Boost::asio::buffer(user_)仅适用于async_write(),但不适用async_read().它适用于矢量,那么它不使用字符串的原因是什么?除了声明char user_[max_len]和使用之外,还有其他方法Boost::asio::buffer(user_, max_len)吗?

另外,继承boost::enable_shared_from_this<Connection>和使用shared_from_this()而不是thisin async_read()async_write()?的重点是什么?我在例子中看到了很多.

这是我的代码的一部分:

class Connection
{
    public:

        Connection(tcp::acceptor &acceptor) :
            acceptor_(acceptor), 
            socket_(acceptor.get_io_service(), tcp::v4())
        { }

        void start()
        {
            acceptor_.get_io_service().post(
                boost::bind(&Connection::start_accept, this));
        }

    private:

        void start_accept()
        {
            acceptor_.async_accept(socket_, 
                boost::bind(&Connection::handle_accept, this, 
                placeholders::error));
        }

        void handle_accept(const boost::system::error_code& err)
        {
            if (err)
            {
                disconnect();
            }
            else
            {
                async_read(socket_, boost::asio::buffer(user_),
                    boost::bind(&Connection::handle_user_read, this,
                    placeholders::error, placeholders::bytes_transferred));
            }
        }

        void …
Run Code Online (Sandbox Code Playgroud)

string boost asynchronous boost-asio

13
推荐指数
3
解决办法
2万
查看次数

如何在boost :: asio :: buffer中包装std :: wstring?

我正在使用boost :: asio编写客户端服务器应用程序.我想将结构从客户端传输到服务器.结构中有一些std :: wstrings.如何在boost :: asio :: buffer中编码结构?

c++ serialization boost-asio

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

标签 统计

boost-asio ×2

asynchronous ×1

boost ×1

c++ ×1

serialization ×1

string ×1