Я попытался использовать следующий код, чтобы прочитать количество доступных байтов в сокете (на стороне сервера) и переменную packet_bytes
ничего не делает Я ожидал, что число байтов, используемых пакетом, будет считано в packet_bytes
но это не похоже на работу.
std::size_t packet_bytes = 0;
socket_.async_read_some(boost::asio::buffer(data_, max_length),
boost::bind(&session::handle_read, this,
boost::asio::placeholders::error,
packet_bytes));
Я тоже пробовал std::size_t packet_bytes = socket_.available();
и это тоже ничего не вернуло. Это весь код.
packet_bytes
аргумент в bind
Вызов также должен быть заполнителем:
socket_.async_read_some(boost::asio::buffer(data_, max_length),
boost::bind(&session::handle_read, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
Тогда в вашей функции-обработчике этим аргументом будет количество прочитанных байтов.
Смотрите, например пример в руководство.
Других решений пока нет …