У меня возникли проблемы с реализацией третьего параметра в функции, описанной здесь: http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/reference/async_read_until/overload4.html Что я хотел бы уметь делать использует обратный вызов для третьего параметра async_read_until, чтобы определить, когда прибыл полный фрагмент. Мои пакеты имеют следующий формат.
- 1 байт идентификатор (семантическое значение данных)
- unsigned int (количество байтов в данных, так как некоторые фрагменты данных могут изменять размер)
- полезная нагрузка
Глядя на пример кода в документации, я немного запутался в том, как я должен извлекать байт, не говоря уже о беззнаковом целом из начального и конечного итераторов. Я создал свои итераторы как typedef boost::asio::buffers_iterator<
boost::asio::streambuf::const_buffers_type> iterator;
но даже тогда я не уверен, что это за тип, так как я не знаю, что такое const_buffers_type. Я перешел по некоторым ссылкам в документации и обнаружил, что это «определена реализацией», но я думаю, что могу ошибаться. Итак, два моих конкретных вопроса:
- как я могу использовать эти два итератора для чтения беззнакового целого числа?
- на какой тип указывают эти итераторы?
Спасибо!