In this chapter, we introduced designing network applications in C++. With effect from its first version, C++ has lacked built-in support for networking. The C++23 standard plans to finally introduce it in the language.
We started off by introducing the basics of networking. Understanding networking completely takes a lot of time, but there are several foundational concepts that every programmer must know before implementing an application in any way related to the network. Those foundational concepts include layering in the OSI model and different kinds of transport protocol, such as TCP and UDP. Having an understanding of the differences between TCP and UDP is necessary for any programmer. As we learned, TCP makes reliable connections between sockets, and sockets are the next thing that a programmer encounters when developing network applications. Those are the connection...