Back to Projects

uTorrent Application (C)

A peer-to-peer file sharing application prototype built in C/C++ that demonstrates BitTorrent-like concepts using WebSocket-based communication for distributed file exchange and peer coordination.

C
C++
P2P
Networking
Distributed Systems
WebSockets
File Sharing

Overview

A peer-to-peer file sharing application prototype built in C/C++ that demonstrates BitTorrent-like concepts using WebSocket-based communication for distributed file exchange and peer coordination.

Problem

Understanding distributed systems and P2P networking requires hands-on implementation experience. Building a functional file-sharing system involves complex challenges in peer coordination, file discovery, network communication protocols, and concurrent data transfers.

Solution

Developed a learning-focused P2P file sharing application using C/C++ that implements core BitTorrent concepts. The system uses WebSocket protocols for peer-to-peer and coordinator communication, includes peer availability tracking, file distribution discovery mechanisms, and integrated stress testing utilities to validate performance.

Key Features

  • Peer-to-peer file sharing workflow demonstrating distributed file exchange
  • Peer availability tracking to monitor which nodes possess specific files
  • File discovery mechanism showing distribution across the network
  • WebSocket-based communication protocol for peer interactions
  • Coordinator component for peer discovery and network coordination
  • Integrated stress testing utilities for performance validation
  • Multi-node support for simultaneous peer operation
  • Performance monitoring with heap and resource analysis tools

Tech Stack

C
C++
WebSockets
P2P Networking
Distributed Systems

My Contribution

  • Implemented core P2P file sharing protocol using C/C++ with WebSocket communication
  • Developed peer discovery and availability tracking mechanisms
  • Built the coordinator component for managing peer connections and file distribution
  • Created stress testing framework to validate system performance under load
  • Designed the file distribution and discovery architecture across network nodes
  • Documented the complete system architecture and implementation details