Thank you so much for this guide!
When I was a kid, socket programming felt like a huge thing to me, like unlocking the next level of programming. "Imagine if I could get 2 separate computers to talk to each other!" But it felt impenetrable, and used lots of weird and confusing C tricks.
Your guide demystified the whole subject and put it in plain language that teenage me could understand, and with it, I was able to build my first network-based "hello world". It was a magical feeling to see those messages delivered across the network. Thanks Beej!