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.