Network programming is becoming more and more popular. Most computers are connected to the internet, and more and more applications now rely on that. From simple program updates that might require an internet connection to applications that rely on a stable internet connection, network programming is becoming a necessary part of application development.
The C++ language did not have support for networking until recent standard updates. Networking support has been postponed later standards, most probably until C++23. However, we can prepare for that release beforehand by tackling a network application. We will also discuss the standard extension for networking and see what will it look like to have networking supported in the language. This chapter will concentrate on the main principles of networking and the protocols driving communication between devices...