This project consists of an IRC server implementation and a load testing tool designed to simulate multiple IRC clients. The server utilizes the epoll mechanism for efficient handling of client connections and commands, while the load testing tool measures the performance of the server under heavy load.
## Features
- **IRC Server**: Implements basic IRC functionalities including user registration, channel creation, message broadcasting, and more.
- **Load Testing Tool**: Simulates multiple IRC clients connecting to the server, joining channels, and sending messages to evaluate server performance.
- **Concurrency**: Utilizes pthreads for handling multiple clients simultaneously.
- **Performance Metrics**: Measures total messages sent, bytes sent, and received during the load test.
## Requirements
- C Compiler (gcc)
- POSIX Threads Library
- Standard C Libraries
## Installation
1. Clone the repository:
```bash
git clone <repository-url>
cd <repository-directory>
```
2. Compile the server and load testing tool:
```bash
make
```
## Usage
### Running the IRC Server
To start the IRC server, run the following command: