This is the implementation of a multithreaded chatroom with multiple clients who communicate with each other via a single server.
- Clients can talk to each other personally.
- Clients can form groups of multiple clients and talk within these groups.
- Clients can request and get the list of clients present in the chatroom.
- Entire chat history is stored and can be printed if needed.