Enhance your skills with practical examples for C++ network programming
- Augment your C++ network programming using Boost.Asio
- Discover how Boost.Asio handles synchronous and asynchronous programming models.
- Practical examples of client/server applications.
- Learn how to deal with threading when writing network applications.
- Harness the power of Boost with plenty of examples that you can build upon.
Network programming is not new and it's no secret that it's not an easy task. Boost.Asio provides an excellent level of abstraction, making sure that with a minimal amount of coding you can create beautiful client/server applications, and have fun in the process!.
"Boost.Asio C++ Network Programming" shows how to build client/server applications using a library that is part of the popular peer-reviewed Boost C++ Libraries. It analyzes whether you should go synchronous or asynchronous and the role that threading plays, whilst providing examples you can run and extend for yourself.
After covering the fundamentals of Boost.Asio you'll discover how you can build synchronous and asynchronous clients and servers. You will also see how you can have your own asynchronous functions play nice with Boost.Asio. As a bonus, we will introduce co-routines, which make asynchronous programming a piece of cake. Nowadays, network programming is a must, no matter what type of programmer you are. "Boost.Asio C++ Network Programming" shows just how simple networking can be, if you’re using the right tools.
What you will learn from this book
- How to easily reference Boost.Asio programming.
- Synchronous versus asynchronous using Boost.Asio.
- How threading affects programming using Boost.Asio.
- Create your own echo client and server.
- More examples of client/server applications, both synchronous and asynchronous.
- Implement your own asynchronous operations.
- Co-routines: asynchronous operations with a synchronous feel.
- Use Boost.Asio for SSL Networking.
- Debug Boost.Asio.
- Use Boost.Asio for more than just networking.
What you want is an easy level of abstraction, which is just what this book provides in conjunction with Boost.Asio. Switching to Boost.Asio is just a few extra #include directives away, with the help of this practical and engaging guide.
Who this book is written for
This book is great for developers that need to do network programming, who don't want to delve into the complicated issues of a raw networking API. You should be familiar with core Boost concepts, such as smart pointers and shared_from_this, resource classes (noncopyable), functors and boost::bind, boost mutexes, and the boost date/time library. Readers should also be familiar with "blocking" versus "non-blocking" operations.