Once upon a time (about 7 years ago) Beej's guides saved my life at work when trying to implement network stuff in C for a project at work I was in over my head on.<p>If there was more stuff like this in C-land I probably wouldn't have been clambering to get away from C and into more nurturing, sharing communities at the first opportunity.<p>Really cool to see he's keeping it up to date.
Definitely a great read, one I recommend frequently. Nowadays, I reach for ASIO. I think I read yesterday it's going to be included in C++17? Much more portable than POSIX sockets. After reading this I implemented a multithreaded version [0], then started contributing to h2o [1].<p>[0] <a href="https://github.com/nickdesaulniers/c-http-server/blob/master/threaded.c" rel="nofollow">https://github.com/nickdesaulniers/c-http-server/blob/master...</a><p>[1] <a href="https://github.com/h2o/h2o" rel="nofollow">https://github.com/h2o/h2o</a>
Definitely a great and very instructive read, and one of the few to include IPv6 and the correct usage of getaddrinfo.<p>It's the guide I recommend to everyone who wants to learn about network programming in C. I actually purchased the (slightly expensive) printed version and never regretted it :)<p><a href="http://www.lulu.com/shop/brian-hall/beejs-guide-to-network-programming/paperback/product-18179133.html" rel="nofollow">http://www.lulu.com/shop/brian-hall/beejs-guide-to-network-p...</a>
I think there are better (more correctly written) guides to network programming, i.e., UNIX Network Programming (old, but the newest volume: The Sockets Networking API - was written in 2003), and TCP/IP Illustrated (also most recently updated with a 2nd edition in 2011) by the late, great W. Richard Stevens - despite his sole work being horribly out of date, with later volumes being worked on by Bill Fenner and Andy Rudoff, I would honestly look no further in lieu of socket programming in C.
Not just the Network Programming guide, all of beej's guides are pretty awesome -- Specific purpose and very readable (even for non-native english speakers).<p><a href="http://beej.us/guide/" rel="nofollow">http://beej.us/guide/</a>
Wow, I haven't looked at Beej in a long time. Everything's cleaner and even more useful for entry-level consumption. When I saw the link I first thought "boy, that's an oldie but goodie" but the 2012 really was accurate. Keep this in circulation. He deserves the kudos and the audience.
Back in college I wrote this address on the board and told fellow students that this was a good site to learn some C basics and learn network programming. Most people just laughed at the name, but I like to think Beej helped some people who decided to check it out.
Why can't (more) textbooks be written like this? There's no need to make CS dry -- as long as the technical details are correct, it can and should be fun to follow the work.
This guide was very helpful around 2001-... to build Monkey HTTP Server:<p><a href="http://monkey-project.com" rel="nofollow">http://monkey-project.com</a>
<a href="http://github.com/monkey/monkey" rel="nofollow">http://github.com/monkey/monkey</a>
I read this guide, used it only a few years back when I wanted to learn more about network programming. It's a very well written guide. Certainly a great way to learn about network programming!