A simple java system that uses TCP sockets for communication. Its consists of several parts:
-
Multithreaded commandline clientSession app
- Socket Channels
- Selector Keys
- Interactive commandline interface
- Customized Communication protocol(Enums and Serializable classes for messages and commands)
- Layered architecture(Clear separation of concerns between classes) with Observer pattern
-
Customized application specific communication protocol
-
Threaded Non Blocking Server
- Socket Channels
- Selector Keys