Is there a proper way for implementation of a Real-time Boost.Asio TCP socket?

I am developing a code to connect to my microcontroller board that is sending packets of size 30KB at 0.1/second intervals constantly. So far I use the following API for reading from TCP stream:

        boost::asio::buffer(data, DATA_BUFFER_SIZE),

The problem is that I am receiving every 18 packets or sometimes even more, and all the packets in between are lost/dropped. Is there a specific routine to follow or certain things to avoid for getting as least delay as possible? I would appreciate any helps or possible similar open source examples to follow and learn how to achieve this with Boost.Asio. Thank you

Read more here: Source link