Objective:
The aim of this assignment is to create a simple multi-threaded server-client application where multiple users can exchange message or text with each other with some additional features.
Detailed Features:
i. User Registration and Login: To join the system, a user requires creating an account with a username and password. Once account creation is done, the user can log-in or log-out anytime.
ii. Online User Lists: After logging on, a user can have the online user list.
iii. Friend Request: A user can send friend request to other users. The request can be accepted or rejected. A user can have his/her friend list.
iv. Unicast: A user can send message to any other online user
v. Multicast: A user can send message to a group of online users (for this feature send the message as message@first-user:second-user:third-user and the message will be delivered to the users separated by “:”)
vi. Broadcast: A user can send message to all the online users
vii. Create Group: A user can also create a group, send message to all the members in the group.