Chapter 4. Getting Started with Boost.Asio
We already know about the Boost C++ library in general. Now it is time to find out more about Boost.Asio, the library that we use to develop network applications. Boost.Asio is a collection of libraries that are used to process data asynchronously because Asio itself stands for Asynchronous I/O (input and output). Asynchronous means that a particular task in a program will operate without blocking other tasks and Boost.Asio will notify the program when it has finished carrying out that task. In other words, the task is executed concurrently.
In this chapter, we are going to discuss the following topics:
- Distinguishing between concurrent and nonconcurrent programming
- Understanding the I/O service, the brain and the heart of Boost.Asio
- Binding a function dynamically to a function pointer
- Synchronizing access to any global data or shared data