(Trying to repost because the previous message was rejected due to size limits.)
 
Hi Loup,
The reason I'm taking the time to ask here is because I feel there is something fundamental, likely obvious to the experts, that I don't understand about how beast (and, I'm guessing, asio)  works, and how I'm supposed to use it.
It seems like you are quite comfortable with C++. That is good because it is a necessary background for this.

Boost.Asio and .Beast are inherently advanced topics. The examples use quite advanced C++ knowledge. It could appear simple to experts who understand asio and C++, as well as to newcomers if they were lucky to get the right orientation when they began to learn C++. I had to unlearn a lot of 'C' and old C++ notions.

Here are some resources that helped me reach the Aha! moment after a lot of struggles. They are all well worth the patient time you will need. (They are from my bookmarks and are a bit dated. You can easily get the corresponding latest versions.)
  1. ASIO: https://www.boost.org/doc/libs/1_79_0/doc/html/boost_asio.html
  2. Beast: Watch this video https://youtu.be/7FQwAjELMek at the bottom of the tutorials page https://www.boost.org/doc/libs/1_80_0/libs/beast/doc/html/beast/examples.html. This video was a turning point for me.
  3. If you would like interactive help, join the #beast channel of the cpplang slack https://cppalliance.org/slack/. They are very kind and super helpful.

When you get asio and beast to work well, they are beautiful and give you joy.

HTH.
Thanks,
Senthil.