Network applications are typically structured according to a small no. of design patterns. The most common are
Server provides some type of service to clients such as access to files on the server host. Servers are categorized into 2 classes:
Iterative – server process client request one at a time.
Concurrent – server initiates another server instances to handle multiple client requests.
Applications are designed in a distributed fashion where each application acts both as a client and as a server or sometimes both.
Application Programming Interfaces (APIs)
It provides the desired network operations of an application.