this project is the single server - multiple client model, and it must use C or C++ and Linux socket commands for this project.
Simple GUI for client
Sending/receiving messages concurrently between clients
Clients must be able to “whisper” to each other
Clients must be able to choose a nickname
Server operations (such as connect requests and disconnect requests) should be printed out by the server.
The server must handle connections / disconnections without disruption of other services.
Clients must have unique nicknames, duplicates must be resolved before allowing a client to be connected.
All clients must be informed of changes in the list of connected users
A list of online users must be displayed (via GUI or command).
Connection / disconnection actions of users must be displayed.
Messages from the originating user and other users must be displayed (in other words the messages you send must also be displayed).
Must still be able to receive messages / actions while typing a message.
Clients must be able to disconnect without disrupting the server.