Буфер переменного размера для приема пакетов UDP
У меня есть сокет UDP, который будет принимать некоторые пакеты, потенциально разных размеров, и я обрабатываю это асинхронно:
socket.async_receive_from(boost::asio::buffer(buffer, 65536), senderEndpoint, handler);
Проблема здесь заключается в том, что для обработки разных размеров у меня есть большой буфер, который может быть решен с помощью буферов переменного размера.
Насколько я понимаю, при использованииasync_receive_from
обработчик вызывается только с одним пакетом за раз, потому что границы пакетов сохраняются в UDP. Так,Есть ли способ дать пустой буферasync_receive_from
что Asio вырастет до размера пакета?
Также обратите внимание, что я упаковываю пакеты, поэтому для каждого пакета, проходящего через этот сокет, 4 первых байта являются длиной пакета.