DCN_Chat_Program/README.md
2025-06-09 17:07:34 +08:00

47 lines
1.6 KiB
Markdown

# 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:**
1. **Accept** client connections & **Receive** messages.
2. For each message, use regular expressions to **determine its message type & response** to sender.
- **Client-Side:**
1. **Send & Receive** Messages.
2. **Announce available Username**
3. **Client-Side Hints:** #help & #quit.
---
## Features
1. **Public/private chatting:** Direct Message, Chatroom Message
2. **Group Chatting:** create, add by passcode, delete by admin, delete user by admin
3. **Server-side Commands:** delete client, shutdown Server
4. **Client-side Hints:** Help & Get online client names
5. **Retry Mechanism:** client username declaration, client connection
6. **Only display messages posted by clients**
---
## Usage
> Public / Private Chatting
1. Public: `<msg>`
2. Private: `@username <msg>`
>Group Chatting: Unordered List (Hash)
1. Create: `Group @[<usernames>] Group name, password`
2. Add: `Group_add @Group name, password`
3. Chat: `@[Group name] <msg>`
4. Group Admin Only:
1. Delete: `Group_del @Group name, password`
2. Del People: `Group_delp @Group name, username, password`