This approach is so much nicer than the threading/queuing approaches we used to have. One async showed up, a ton of the work go pulled out of protocol handing and distributed subsystem sync efforts.
Long lived the multi threaded C++ server buffer! Today, async beging to rule the roost.
Yeah, those durn data size fields. At first you’re like “why would you do this? It’s specified in the spec, right?” Then you start consuming the data stream and go “oh, yeah need this”.
I was doing some driver work for a real time location tracking board. The serial stream protocol was very well documented and designed. Plenty of byte length count fields, though.