Catalog · How the catalog works
Delphi_Basic_UDP_Holepunching
A Delphi Project Showcasing Basic UDP Hole Punching for NAT Traversal. (Uses INDY UDP Sockets)
- ★ 8 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
📡 UDP Hole Punching Tool
This repository showcases a Delphi-based UDP Hole Punching Tool utilizing Indy components. It enables UDP-based communication between two PCs, allowing them to establish a direct connection behind NAT (Network Address Translation) using the hole punching technique. Does NOT Require or use a rendezvous server! both peers are expected to know their respective ports 8888 or 7777 as per the example code.

📋 Project Overview
- Single Application: A Delphi application that acts both as a server and a client for UDP hole punching.
- Server Functionality: Listens for incoming UDP packets and helps establish the connection between two clients.
- Client Functionality: Sends messages to the server, receives responses, and establishes a peer-to-peer connection through UDP hole punching.
✨ Features
- Role Selection: Choose between "Your PC" or "Another PC" to configure the correct ports for UDP communication.
- UDP Hole Punching: Facilitates NAT traversal and establishes communication between two PCs.
- Real-time Logging: Logs UDP messages exchanged during the connection setup.
- Dynamic Port Configuration: Server and client ports adjust based on the selected role.
⚙️ Installation
- Requirements: Delphi IDE and Indy components.
- Clone & Open Project: Clone this repository and open the
.dprfile in Delphi. - Compile: Build the project to generate the executable.
- Run: Start the server, the client is auto configured to work for you!
🔌 Usage
- Server Setup: Launch the server to listen for incoming connections on the configured port.
- Client Connection: Enter the server’s IP address, then start the connection.
- UDP Hole Punching: The server helps establish a peer-to-peer connection between two clients, even if they are behind NAT.
🤝 Contributing
Fork, modify, and submit a pull request with improvements or fixes!
📜 License
This project is open-source under the MIT License.
📧 Contact
For feedback or questions, open an issue or contact me directly "Discord: bitmasterxor"
Built with ❤️ By BitmasterXor using Delphi / Embarcadero Rad Studio.

