A client-server chat room application using a small custom framework to abstract Asio for networking and ImGui for the GUI.
- Real-time messaging: Multiple clients can send and receive messages instantly through the server.
- Chat window with input and output areas: The user interface includes a text area to display chat messages and an input box to type messages.
- Message history: The chat window displays the history of messages.
- Client validation: Validates clients before they connect to the server.
- Track online clients: Server and clients can see the list of connected users.
- Language: C++
- Standard: C++20
- Dependencies:
- Build System: CMake
- Compilers: Clang 14+, GCC 11+, MSVC 17.1+
- Platform: Windows, Linux
- Socket Communication: TCP/IP using Asio for network communication
Clone this repository
git clone https://github.com/LT2H/AsioChatRoom.git
Build Server and Client
cd AsioChatRoom
cmake -S . -B build
cmake --build build
Optional: If you use Ninja
cmake -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=YES -DCMAKE_CXX_COMPILER=clang++ -S . -B build
cmake --build build
First, launch the server binary and choose a port. Then, run one or more clients and connect by entering the server's IP and port.
- This repository is licensed under Apache 2.0 (see included LICENSE.txt file for more details)
