TURN-Client
Kommuniziere mit einem TURN-Server aus Delphi/C++Builder. Allokiere weitergeleitete Transportadressen, verwalte Permissions und Channels und tausche dann Daten mit Peers hinter symmetrischem NAT aus — gemäß RFC 8656.
Kommuniziere mit einem TURN-Server aus Delphi/C++Builder. Allokiere weitergeleitete Transportadressen, verwalte Permissions und Channels und tausche dann Daten mit Peers hinter symmetrischem NAT aus — gemäß RFC 8656.
TURN-Client — Allocate, CreatePermission, ChannelBind, Send / Indication / Data, Refresh, allesamt mit Long-Term-Credentials gemäß RFC 8656 signiert.
TsgcTURNClient
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Setze TURN-Server / Benutzername / Passwort, rufe Allocate auf und dann CreatePermission für jeden Peer und Send / SendIndication, um Daten weiterzuleiten.
uses
sgcP2P;
var
TURN: TsgcTURNClient;
begin
TURN := TsgcTURNClient.Create(nil);
TURN.Host := 'turn.example.com';
TURN.Port := 3478;
TURN.Authentication.UserName := 'alice';
TURN.Authentication.Password := 'secret';
TURN.OnTURNAllocated := procedure(Sender: TObject;
const aRelayedAddress, aRelayedPort: string)
begin
Memo1.Lines.Add('relay: ' + aRelayedAddress + ':' + aRelayedPort);
TURN.CreatePermission('192.0.2.1');
TURN.SendIndication('192.0.2.1', 5000, 'hello via TURN');
end;
TURN.Allocate;
end;
// uses: sgcP2P
TsgcTURNClient *TURN = new TsgcTURNClient(this);
TURN->Host = "turn.example.com";
TURN->Port = 3478;
TURN->Authentication->UserName = "alice";
TURN->Authentication->Password = "secret";
TURN->Allocate();
Ein typisierter RFC-8656-TURN-Client — die Relay-Schicht für WebRTC, wenn reines STUN-NAT-Traversal fehlschlägt.
Allocate sendet einen Allocate-Request mit REQUESTED-TRANSPORT (UDP, TCP) und holt eine weitergeleitete Transportadresse. Refresh verlängert die Lebensdauer; Free hebt die Allokation explizit auf.
CreatePermission(peerIp) registriert einen Peer, dessen Datagramme das Relay weiterleitet. Permissions laufen nach 5 Minuten automatisch ab — bei Bedarf erneuern.
ChannelBind(channelNumber, peerEndpoint) umgeht den 36-Byte-Overhead von Send/Data. Die Komponente kodiert den 4-Byte-ChannelData-Header automatisch.
Authentication.UserName / Password befüllen MESSAGE-INTEGRITY anhand des aus der 401-Challenge extrahierten Realm und Nonce.
Setze das Transport-Property des zugrundeliegenden Clients auf TCP oder TLS für Umgebungen, die UDP blockieren — die Transportwahl gemäß RFC 6062 / 6056 wird unterstützt.
TsgcRTCPeerConnection nutzt TsgcTURNClient als einen seiner IceServers — der Ablauf von Allocate, CreatePermission und ChannelBind erfolgt transparent.
Springe direkt zur Komponentenreferenz, hole dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.
| Online-Hilfe — TsgcTURNClient Vollständige Referenz zu Eigenschaften, Methoden und Ereignissen dieser Komponente. | Öffnen | |
| Demo-Projekt — Demos\35.P2P\03.TURN 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 |