# miroslavpejic85/p2p

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/miroslavpejic85-p2p).**

3,977 stars · 536 forks · C# · mit

## Links

- GitHub: https://github.com/miroslavpejic85/p2p
- awesome-repositories: https://awesome-repositories.com/repository/miroslavpejic85-p2p.md

## Topics

`administration` `anydesk` `c-sharp` `chat` `control` `dotnet` `helpdesk` `net` `p2p` `p2p-chat` `rdp` `remote` `remote-access` `remote-control` `remote-desktop` `software` `teamviewer` `vnc` `windows` `windows-desktop`

## Description

This project is a peer-to-peer networking tool and communication client designed for exchanging messages and sharing screen control between computers without a central server. It functions as a decentralized system for exchanging data and control signals directly between nodes.

The application uses WebRTC for peer-to-peer messaging and remote desktop administration. It incorporates STUN-based NAT traversal and rendezvous servers to establish direct connections between peers hidden behind restrictive firewalls or routers.

The software provides capabilities for remote desktop control, including the streaming of local display frames and the transmission of keyboard and mouse input coordinates to a remote host. It also supports direct text communication and binary data exchange through a peer-to-peer mesh network.

## Tags

### Networking & Communication

- [Peer-to-Peer Networking](https://awesome-repositories.com/f/networking-communication/peer-to-peer-networking.md) — Establishes direct communication links between individual nodes to share data and control signals without a central server.
- [Decentralized Mesh Network Construction](https://awesome-repositories.com/f/networking-communication/decentralized-mesh-network-construction.md) — Builds a decentralized network for exchanging data and control signals without central authority.
- [Peer-to-Peer Messaging](https://awesome-repositories.com/f/networking-communication/instant-messaging-services/peer-to-peer-messaging.md) — Provides a serverless communication client for sending real-time text messages directly between peers. ([source](https://github.com/miroslavpejic85/p2p#readme))
- [Peer-to-Peer Clients](https://awesome-repositories.com/f/networking-communication/messaging-clients/peer-to-peer-clients.md) — Provides a decentralized messaging client that communicates directly between computers using WebRTC.
- [NAT Traversal Mechanisms](https://awesome-repositories.com/f/networking-communication/nat-traversal-mechanisms.md) — Establishes network connections through firewalls and NATs to link hidden peers.
- [NAT Traversal](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-proxying-tools/network-proxies/udp-tunneling/nat-traversal.md) — Uses STUN-based hole punching to establish direct connections between peers behind NAT or firewalls.
- [WebRTC Data Channels](https://awesome-repositories.com/f/networking-communication/peer-to-peer-data-exchange/data-channel-establishment/webrtc-data-channels.md) — Transmits real-time peer-to-peer text and binary data using a secure encrypted WebRTC transport layer.
- [Remote Desktop Clients](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-desktop-clients.md) — Provides a software interface to initiate and manage remote desktop control sessions. ([source](https://github.com/miroslavpejic85/p2p/blob/main/README.md))
- [Remote Desktop Protocols](https://awesome-repositories.com/f/networking-communication/remote-access-control/remote-desktop-protocols.md) — Implements protocols to stream graphical frames and input between a remote host and a local viewer. ([source](https://github.com/miroslavpejic85/p2p#readme))
- [Real-Time Screen Streaming](https://awesome-repositories.com/f/networking-communication/remote-access-control/websocket-based-cli-exposure/real-time-screen-streaming.md) — Provides real-time streaming of the device display for remote viewing.
- [Remote Desktop Streaming](https://awesome-repositories.com/f/networking-communication/remote-desktop-streaming.md) — Transmits low-latency video feeds of a host screen to allow remote operation.
- [Remote Input Relays](https://awesome-repositories.com/f/networking-communication/remote-input-relays.md) — Transmits user input events from a remote client to a host machine over the network.
- [Text and Binary Message Exchanges](https://awesome-repositories.com/f/networking-communication/text-and-binary-message-exchanges.md) — Implements bidirectional exchange of text and binary data between peers.
- [NAT Punchthrough Connections](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration/peer-connectivity/nat-punchthrough-connections.md) — Establishes P2P connections through NAT using STUN servers and rendezvous protocols.
- [Remote Desktop Tools](https://awesome-repositories.com/f/networking-communication/webrtc-media-orchestration/peer-connectivity/remote-desktop-tools.md) — Implements a remote administration tool for screen sharing and input control using WebRTC peer-to-peer connections.
- [Firewall Bypass Networking](https://awesome-repositories.com/f/networking-communication/firewall-bypass-networking.md) — Bypasses restrictive network firewalls to enable direct peer-to-peer connectivity. ([source](https://github.com/miroslavpejic85/p2p#readme))

### Graphics & Multimedia

- [Real-Time Display Streaming](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/streaming-broadcasting/media-streaming/frame-to-stream-serialization/real-time-display-streaming.md) — Encodes local display frames into a continuous media stream for real-time remote viewing.

### User Interface & Experience

- [Network Input Serializers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/event-driven-input-handlers/network-input-serializers.md) — Serializes keyboard and mouse coordinates into messages for remote host execution.
