Использование cpprest для чтения двоичных данных

Я использую Microsoft cpprest SDK для чтения двоичных данных через Интернет.
Моя переменная stream ниже тип concurrency::streams::istream, Я пытаюсь прочитать миллион строк типа struct row и обработать их. Я вижу, что я не получаю все байты, которые я запрашиваю. Я подозреваю, что есть хороший способ кодирования этого, но я не смог понять это. Я также подозреваю, что мое приведение к извлечению строки из буфера не является правильным способом сделать что-то. Любая помощь будет оценена.

struct row {
unsigned long long tag_id : 32, day : 32;
unsigned long long time;
double value;
};

size_t row_count = 1000000;
concurrency::streams::container_buffer<vector<uint8_t>> buffer;
size_t bytes_requested = sizeof(row) * row_count;
size_t bytes_received = stream.read(buffer, bytes_requested).get();
// bytes_received does not always match bytes requested
for (size_t i = 0; i < row_count; ++i) {
row &r = *(row *) &buffer.collection()[i * sizeof(row)];
// do something with row here
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]