This project is a learning exercise to understand and implement a chat room application using C++. It covers various concepts such as socket programming (TCP and UDP), multi-threading, mutexes, and condition variables.
- Create and join chat rooms.
- Two types of clients: Watcher (can only see chat history) and Sender (can only send messages).
- Multi-threaded server to handle multiple clients concurrently.
- Use of mutexes and condition variables to manage shared resources.
- C++ compiler (e.g., g++)
- Make
- ncurses library
To build the project, run the following command:
make
This will compile the server and client executables and place them in the build directory.
To start the server, run the following command:
./build/server
The server will start and create a default chat room.
To start the client, run the following command:
./build/client
The client will start and display a menu to create or join a chat room.