{"id":18598599,"url":"https://github.com/hanzala-bhutto/multi-client-server-asio","last_synced_at":"2026-02-03T03:31:07.450Z","repository":{"id":245895484,"uuid":"818902614","full_name":"hanzala-bhutto/Multi-Client-Server-ASIO","owner":"hanzala-bhutto","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-04T17:02:10.000Z","size":85,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-26T21:42:28.077Z","etag":null,"topics":["asio","client-server","cplusplus-17","socket-programming","visual-studio"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hanzala-bhutto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-23T07:52:12.000Z","updated_at":"2024-12-04T17:02:13.000Z","dependencies_parsed_at":"2024-07-12T06:32:59.203Z","dependency_job_id":"d4c8eb9f-5472-4630-8e11-572b41ffa9ee","html_url":"https://github.com/hanzala-bhutto/Multi-Client-Server-ASIO","commit_stats":null,"previous_names":["hanzala-bhutto/multi-client-server-asio"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanzala-bhutto%2FMulti-Client-Server-ASIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanzala-bhutto%2FMulti-Client-Server-ASIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanzala-bhutto%2FMulti-Client-Server-ASIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanzala-bhutto%2FMulti-Client-Server-ASIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hanzala-bhutto","download_url":"https://codeload.github.com/hanzala-bhutto/Multi-Client-Server-ASIO/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239384745,"owners_count":19629509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asio","client-server","cplusplus-17","socket-programming","visual-studio"],"created_at":"2024-11-07T01:33:25.399Z","updated_at":"2026-02-03T03:31:02.409Z","avatar_url":"https://github.com/hanzala-bhutto.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-Client-Server-ASIO\n\n## Table of Contents\n- [Introduction](#introduction)\n- [Tech Stack](#tech-stack)\n- [Features](#features)\n- [Project Structure](#project-structure)\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n- [Acknowledgments](#acknowledgments)\n\n## Introduction\n\nMulti-Client-Server-ASIO is an asynchronous, multi-client server-client framework built using **Boost.Asio** in C++. It allows for scalable communication between a server and multiple clients, efficiently handling simultaneous connections with non-blocking I/O operations. This project demonstrates modern C++ socket programming with clean and modular code.\n\n## Tech Stack\n\n- **C++17**: Modern C++ features for clean and efficient code.\n- **Boost.Asio**: A library for asynchronous input/output operations and networking.\n- **Visual Studio**: IDE for development and solution management.\n\n## Features\n\n- **Multi-client support**: Efficiently manages multiple simultaneous client connections.\n- **Asynchronous communication**: Non-blocking I/O for high performance and responsiveness.\n- **Modular architecture**: Separate client, server, and common utility code.\n- **Cross-platform compatibility**: Should work on any platform supporting Boost.Asio and C++17.\n\n## Project Structure\n```bash\nMulti-Client-Server-ASIO/\n├── Client/                 # Client-side implementation\n│   ├── main.cpp            # Entry point for the client\n│   ├── Client.cpp          # Core client logic\n│   └── Client.hpp          # Client header file\n├── Server/                 # Server-side implementation\n│   ├── main.cpp            # Entry point for the server\n│   ├── Server.cpp          # Core server logic\n│   └── Server.hpp          # Server header file\n├── Common/                 # Shared utilities and definitions\n│   └── Utilities.hpp       # Helper functions and common definitions\n├── .gitattributes          # Git configuration file\n├── .gitignore              # Ignored files and directories\n├── LICENSE                 # License information\n├── README.md               # Documentation\n└── Client-Server-App.sln   # Visual Studio solution file\n```\n\n## Getting Started\n\n### Prerequisites\n\nBefore you begin, ensure you have the following installed:\n- A compatible C++ compiler with **C++17** support.\n- [Boost C++ Libraries](https://www.boost.org/), especially **Boost.Asio** for networking.\n- **Visual Studio** (or any other C++ IDE that supports Boost).\n\n### Installation\n\nTo set up the project locally:\n\n- Clone the repository:\n   ```bash\n   git clone https://github.com/hanzala-bhutto/Multi-Client-Server-ASIO.git\n\n- Open the `Client-Server-App.sln` file in Visual Studio (or your preferred IDE).\n- Build the solution to compile the server and client binaries.\n\n### Running the Application\n\n- Start the server application from the `Server` directory.\n- Launch the client application(s) from the `Client` directory.\n- Observe communication between the server and multiple clients.\n\n### Usage\n\nOnce the project is built:\n\n- **Start the server**:\n   - Navigate to the `Server/` directory and launch the server application. \n   - The server will listen for incoming client connections and handle communication with them.\n\n- **Launch the client(s)**:\n   - Navigate to the `Client/` directory.\n   - Launch one or more client applications. Each client will connect to the server and send requests.\n\n- **Monitor interaction**:\n   - Observe the communication between the server and the clients. The server should process requests and respond to each connected client.\n\n- **Simulate multiple clients**:\n   - To test scalability, you can simulate multiple clients by running several instances of the client application. This allows you to test how the server handles multiple simultaneous connections and requests.\n\n## Contributing\n\nContributions are welcome! Feel free to fork the repository and submit pull requests.\n\n## License\n\nThis project is released under the MIT License. See `LICENSE` for details.\n\n## Acknowledgments\n\n- Thanks to the creators of Boost.Asio for their powerful networking library.\n- Inspiration from other open-source ASIO-based projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanzala-bhutto%2Fmulti-client-server-asio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhanzala-bhutto%2Fmulti-client-server-asio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanzala-bhutto%2Fmulti-client-server-asio/lists"}