The approach of designing an application with a small subsystem that requires a network connection is different compared to a fully network-related application. An example of the latter might be a client-server application for file storage and synchronization (such as Dropbox). It consists of a server and clients, where the client is installed as a desktop or mobile application that can also be used as a file explorer. Each update to the files in the system controlled by Dropbox will be instantly synchronized with the server. This way, you will always have your files in the cloud and can access them anywhere with an internet connection.
We will be designing a similar simplified server application for file storage and manipulation. The following are the main tasks of the server:
- Receive files from client applications
- Store files at specified locations...