STUN-Client
Ermittle deinen reflexiven Endpunkt hinter NAT mit einem typisierten STUN-Client (RFC 8489). Wird als Bootstrap-Schritt für die ICE-Kandidatensammlung und WebRTC verwendet.
Ermittle deinen reflexiven Endpunkt hinter NAT mit einem typisierten STUN-Client (RFC 8489). Wird als Bootstrap-Schritt für die ICE-Kandidatensammlung und WebRTC verwendet.
STUN-Client — Binding-Requests, XOR-MAPPED-ADDRESS-Extraktion, MESSAGE-INTEGRITY-/FINGERPRINT-Unterstützung, Retransmission-Timer gemäß RFC 8489.
TsgcSTUNClient
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
Setze Host/Port des STUN-Servers, rufe SendBindingRequest auf und lies anschließend MappedAddress / MappedPort aus OnSTUNMappedAddress.
uses
sgcP2P;
var
STUN: TsgcSTUNClient;
begin
STUN := TsgcSTUNClient.Create(nil);
STUN.Host := 'stun.l.google.com';
STUN.Port := 19302;
STUN.OnSTUNMappedAddress := procedure(Sender: TObject;
const aMappedAddress, aMappedPort: string)
begin
Memo1.Lines.Add('public: ' + aMappedAddress + ':' + aMappedPort);
end;
STUN.SendBindingRequest;
end;
// uses: sgcP2P
TsgcSTUNClient *STUN = new TsgcSTUNClient(this);
STUN->Host = "stun.l.google.com";
STUN->Port = 19302;
STUN->SendBindingRequest();
Ein typisierter RFC-8489-STUN-Client mit den von ICE genutzten Message-Integrity- und Fingerprint-Erweiterungen.
SendBindingRequest sendet die STUN-Nachricht 0x0001; die Antwort erscheint in OnSTUNMappedAddress mit dem geparsten XOR-MAPPED-ADDRESS-Attribut.
Setze Authentication.UserName / Password, dann berechnet die Komponente MESSAGE-INTEGRITY (HMAC-SHA1 / HMAC-SHA256). Realm und Nonce werden aus der 401-Challenge-Antwort extrahiert.
STUN über UDP erfordert eine Retransmission auf Anwendungsebene. Die Komponente implementiert das Standard-Back-off (RTO / Rc / Rm) gemäß RFC 8489 §6.2.1.
XOR-MAPPED-ADDRESS kommt in beiden Familien zurück — die Komponente dekodiert beide und speichert die kanonische Textform in MappedAddress.
Betreibe mehrere TsgcSTUNClient-Instanzen gegen verschiedene STUN-Server, um server-reflexive ICE-Kandidaten zu sammeln — einen pro lokalem Interface.
Verwendet intern TsgcUDPClient; das lokale Port-Binding ist konfigurierbar, sodass STUN, ICE und der Datenpfad bei Bedarf einen Endpunkt teilen können.
Springe direkt zur Komponentenreferenz, hole dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.
| Online-Hilfe — TsgcSTUNClient Vollständige Referenz zu Eigenschaften, Methoden und Ereignissen dieser Komponente. | Öffnen | |
| Demo-Projekt — Demos\35.P2P\02.STUN Sofort lauffähiges Beispielprojekt. Wird im sgcWebSockets-Paket mitgeliefert — lade unten die Testversion herunter. | Öffnen | |
| Technisches Dokument (PDF) Funktionen, Schnellstart, Code-Beispiele für Delphi & C++ Builder und Primärquellen-Referenzen — nur diese Komponente. | Öffnen | |
| Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek abdeckt. | Öffnen |