файл с сети несколько гигов.
Таким образом
boost::beast::http::async_read(state->socket,
*state->streambuf,
*state->response,
[this, state](const boost::system::error_code& ec, std::size_t bytesTransfered) {
OnRead(state, ec, bytesTransfered);
});
он выкачивается целиком, т.е слишком много жрёт оперативки. Если ставлю максимальный размер для streambuf, то получаю buffer overflow искючение. Как большой файл по частям читать из сети?
Обязательно boost::asio ?
Да, желательно, иначе слишком много менять
А почему нет?
Сильно перегруженный фреймворк, по моему обычными сокетами намного проще
Хз чем оно перегружено, но с ними работать проще чем с нативным апи, плюсом расширяемость на несколько потоков
В Гугле не ищется? Я просто не работал beast, а в доуи день зодить
Обычными кроссплатформенными сокетами, действительно
Как по мне - пара дефайнов лучше, чем тащить такую толстую либу
Искал, не нашёл, может запрос неправильно пишу.
Где ты толстую либу нашёл?
Да и вообще C++ перегружен, то ли дело С
Для асио тащишь только хедеры
Там же есть read_some, не?
Раньше можно было asio и без буста вовсе затянуть
А он асинхронный? Ему же асинхронный надо
asio уже почти стандарт, так что не вкусовщина, а стандартный подход
Попробуй его
Почти стандарт это как понимать?
Стандарт де-факто в С++
Это значит что через несколько лет (3-6) это будет в std
Если честно то я в этом сильно сомневаюсь, именно насчёт модуля asio, хотя знаю, что многое из буста уже добавляли в stl
не сомневайся, а гугли Networking TS
хмм.. вообще, надо сейчас по дефолту его иметь, потому что скоро Network TS в стандарт придет (Н - надежда), а это и есть Boost::Asio
Боюсь завезут только сокеты асинхронные и на том всё
Async подход завезут, этого достаточно
Ещё бы не плохо чтобы его расширять можно было, например чтобы можно было и чтение файлов прикрутить и много чего ещё
Дак можно же, кто мешает?
Обсуждают сегодня