Bufor o zmiennej wielkości do odbierania pakietów UDP

Mam gniazdo UDP, które otrzyma niektóre pakiety, potencjalnie różnych rozmiarów, i radzę sobie z tym asynchronicznie:

socket.async_receive_from(boost::asio::buffer(buffer, 65536), senderEndpoint, handler);

Problem polega na tym, że do obsługi różnych rozmiarów mam duży bufor, coś, co można rozwiązać za pomocą buforów o zmiennej wielkości.

Do mojego zrozumienia, kiedy używamasync_receive_from, obsługa jest wywoływana tylko z jednym pakietem na raz, ponieważ granice pakietów są zachowane w UDP. Więc,czy istnieje sposób na przekazanie pustego buforaasync_receive_from że Asio będzie rosnąć, aby dopasować rozmiar pakietu ?

Zauważ również, że pakuję pakiety, więc dla każdego pakietu przesyłanego do tego gniazda 4 pierwsze bajty są długością pakietu.

questionAnswers(2)

yourAnswerToTheQuestion