Asio is the first BIG boost framework I encountered. The documentation reading was fantastic, which I supplemented with some googling. In short, Asio seems to be considered one of the very best communication library around, and it’s easy to see why.
First, it supports about every plateforms and operating systems I can think of. It encapsulate all the best communication features from all these systems into a cohesive, single interface. That is, when built for BSD or OS X, Asio uses kqueues; for Windows it uses Overlapped IO; for Linux it uses epoll; etc. The same request codes can be called in synchronous or asynchronous ways, and the later implement its own internal threading.
Asio knows a wide range of protocoles, from TCP to UDP, IPv4 and IPv6 addressing, SSL connections, etc. It provides a timer system and a fully std::iostream compatible interface.
After learning about it, I wonder why I would ever need to use any other libraries for my communications. It is that powerful. And did I mentioned how simple it is to use?
Only a glance at the code, we see that most of the code is to handle the application specific packet format. The actual code to setup server and client communication is merely a few lines.