This project implements an Internet Radio system that streams multimedia content over IP using multicast. It allows multiple clients to connect to various radio stations, each broadcasting different content, mimicking real-life radio broadcasting over the internet.
- Project Overview
- Features
- Prerequisites
- Repository Structure
- Installation
- How to Run the Project
- Important Implementations
- License
The Internet Radio system is designed to simulate real-life radio broadcasting over IP networks using multicast. The server hosts multiple stations, each streaming different multimedia content. Clients can join these stations to receive live streaming, with functionalities to pause, resume, change stations, or terminate the connection.
- Multicast Streaming: Multiple clients can receive the same stream without additional server load.
- Multiple Stations: Server hosts multiple stations, each broadcasting different content.
- Client Controls: Clients can pause, resume, change stations, or terminate the connection.
- Real-time Streaming: Clients receive live multimedia streams from the server.
- A C compiler (e.g., GCC) installed on your system.
- Knowledge of network programming concepts.
- Required libraries for socket programming and multicast support.
Client/
: Contains the client-side code to connect to the server and receive streams.Server/
: Contains the server-side code to broadcast streams to clients.Project Report.pdf
: Detailed report explaining the project's design, implementation, and testing.
-
Clone the Repository:
git clone https://github.com/klsavaj/CN-Multicasting-Multimedia-Over-IP-INTERNET-RADIO-.git cd CN-Multicasting-Multimedia-Over-IP-INTERNET-RADIO
-
Set Up the Environment:
-
Ensure you have GCC installed. To install GCC on Linux, use:
sudo apt-get install gcc
-
Install required libraries for multicast and socket programming (if not already available).
-
-
Compile the Server and Client:
Navigate to the
Server
andClient
directories and compile the code:gcc server.c -o server gcc client.c -o client
-
Run the Server:
Start the server to begin broadcasting stations:
./server
-
Run the Client:
Start the client to connect to the server and interact with the stations:
./client
Follow the on-screen instructions to connect to a station and control the stream.
-
Multicast Group Management: The server manages multiple multicast groups, each representing a station. Clients join these groups to receive the corresponding streams.
-
Threading: Both server and client use threading to handle multiple stations and client controls simultaneously, ensuring smooth streaming and user experience.
-
Socket Programming: Utilizes UDP sockets for multicast streaming and TCP sockets for control messages between clients and the server.
This project is licensed under the MIT License. See the LICENSE file for details.