Замена boost :: asio :: async_read_some на boost :: asio :: async_read - PullRequest
0 голосов
/ 02 апреля 2019

Я использовал пример кода, предоставленного boost, echo server, чтобы попробовать что-то с одним из моих клиентов.Однако, когда я попытался заменить boost::asio::async_read_some на boost::asio::async_read, я заметил, что последний будет вызываться только тогда, когда соединение будет разорвано, и read_some будет вызываться каждый раз, когда сообщение будет отправлено с одного из моих клиентов.Что я делаю не так?

Вот оригинальный код https://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp

Я заменил содержимое do_read () на следующее:

void do_read()
{

    auto self = shared_from_this();

boost::asio::async_read(socket_, data_, [this, self](boost::system::error_code ec, size_t l) {
        if (!ec)
           do_write(l);
        });
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...