Skip to content

Client-server chat room with real-time messaging, built using a simple Asio networking framework and ImGui.

License

Notifications You must be signed in to change notification settings

LT2H/AsioChatRoom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Asio ImGui Chat Room Application (Client/Server)

A client-server chat room application using a small custom framework to abstract Asio for networking and ImGui for the GUI.

image

Features

  • 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.

Technical Details

  • 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

Getting Started

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.

License

  • This repository is licensed under Apache 2.0 (see included LICENSE.txt file for more details)

About

Client-server chat room with real-time messaging, built using a simple Asio networking framework and ImGui.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published