c ++ boost asio async_read_some читать все данные - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь ускорить Socket Server некоторые данные POST. Для его чтения я использую async_read_some , я понимаю, что сервер получает данные по блокам, затем вспоминаю метод чтения, но как узнать, когда он читает все данные? ... Пример кода:

личное:

    void do_handshake()
    {
        auto self(shared_from_this());
        socket_.async_handshake(boost::asio::ssl::stream_base::server,
            [this, self](const boost::system::error_code& error)
            {
                if (!error)
                {
                    do_read();
                }
            });
    }

    void do_read()
    {
        auto self(shared_from_this());
        socket_.async_read_some(boost::asio::buffer(data_),
            [this, self](const boost::system::error_code& ec, std::size_t length)
            {
                if (!ec)
                {
                    do_read();
/*Something do with receive data */

write("send answer");

                }

            });
    }
    void do_write(std::string SendData)
    {



        auto self(shared_from_this());
        boost::asio::async_write(socket_, boost::asio::buffer(SendData),
            [this, self](const boost::system::error_code& ec,
                std::size_t /*length*/)
            {
                if (!ec)
                {
                    do_read();
                }
            });
    }

Пожалуйста, помогите, спасибо!

...