This project is a demonstration example on multi-threading programming in Java (old school) and network programming (String exchanges over network).
The multi-threading part aims to show how to avoid blocking methods by putting them in separate thread, therefor, the ExecutorService was not used. Two Runnable interfaces are available in the server and the client to show how the dialog is managed.
The Socket part aims to show how simple communication using TCP/IP are quite simple. The system...