DCN_Chat_Program
[UIC Data Communication Workshop 24S Group Assignment2]
Project Description
Our purpose is to create a chat room that allows local area users to freely communicate with each other one-on-one as well as group chat while ensuring individual privacy.
We also give administrators the ability to manage users and all chatting groups to ensure a friendly chatting environment.
And if users do not know how to operate, we will also have a prompt to guide them through.
Project Structure
- Server-Side:
- Accept client connections & Receive messages.
- For each message, use regular expressions to determine its message type & response to sender.
- Client-Side:
- Send & Receive Messages.
- Announce available Username
- Client-Side Hints: #help & #quit.
Features
- Public/private chatting: Direct Message, Chatroom Message
- Group Chatting: create, add by passcode, delete by admin, delete user by admin
- Server-side Commands: delete client, shutdown Server
- Client-side Hints: Help & Get online client names
- Retry Mechanism: client username declaration, client connection
- Only display messages posted by clients
Usage
Public / Private Chatting
- Public:
<msg> - Private:
@username <msg>
Group Chatting: Unordered List (Hash)
- Create:
Group @[<usernames>] Group name, password - Add:
Group_add @Group name, password - Chat:
@[Group name] <msg> - Group Admin Only:
- Delete:
Group_del @Group name, password - Del People:
Group_delp @Group name, username, password
- Delete:
Languages
C++
99.2%
CMake
0.8%