ICE-Client
Führe den vollständigen ICE-Algorithmus in Delphi/C++Builder aus — sammle Host-, Server-Reflexive- und Relay-Kandidaten, führe STUN-Konnektivitätsprüfungen durch und nominiere das beste Paar gemäß RFC 8445.
Führe den vollständigen ICE-Algorithmus in Delphi/C++Builder aus — sammle Host-, Server-Reflexive- und Relay-Kandidaten, führe STUN-Konnektivitätsprüfungen durch und nominiere das beste Paar gemäß RFC 8445.
Implementiert den RFC-8445-ICE-Zustandsautomaten — Kandidatensammlung, Priorisierung, Paargenerierung, Konnektivitätsprüfungen (BindingRequest mit USE-CANDIDATE), Nominierung und Consent-Freshness.
TsgcICEClient
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Konfiguriere STUN-/TURN-ICE-Server, rufe GatherCandidates auf, tausche die Kandidatenliste mit dem Peer aus (out of band) und starte dann StartChecks, um ein funktionierendes Paar zu nominieren.
uses
sgcP2P;
var
ICE: TsgcICEClient;
begin
ICE := TsgcICEClient.Create(nil);
ICE.IceServers.Add('stun:stun.l.google.com:19302');
ICE.IceServers.Add('turn:turn.example.com', 'alice', 'secret');
ICE.OnICELocalCandidate := procedure(Sender: TObject;
const aCandidate: string)
begin
SignalToPeer(aCandidate); // out-of-band SDP / WebSocket
end;
ICE.OnICEConnectionStateChanged := procedure(Sender: TObject;
const aState: TsgcICEConnectionState)
begin
Memo1.Lines.Add('ICE: ' + GetEnumName(TypeInfo(TsgcICEConnectionState), Ord(aState)));
end;
ICE.GatherCandidates;
end;
// uses: sgcP2P
TsgcICEClient *ICE = new TsgcICEClient(this);
ICE->IceServers->Add("stun:stun.l.google.com:19302");
ICE->GatherCandidates();
Eine wiederverwendbare ICE-Engine, die unter TsgcRTCPeerConnection einsetzt — oder eigenständig für Nicht-WebRTC-P2P läuft.
Listet Host-Kandidaten von jedem lokalen Interface, Server-Reflexive-Kandidaten von jedem STUN-Server und Relayed-Kandidaten von jedem TURN-Server — alles parallel.
Berechnet die Kandidatenpaar-Prioritäten gemäß RFC 8445 §6.1.2 und ordnet die Check-Liste. Frozen-Pairs werden aufgetaut, sobald ihre Foundation Fortschritte macht.
Sendet STUN-BindingRequests mit PRIORITY-, ICE-CONTROLLING-/ICE-CONTROLLED- und USE-CANDIDATE-Attributen gemäß Standard. Triggered Checks werden bei eingehendem Stimulus ausgelöst.
Wenn ein Paar erfolgreich ist und der Controlling-Agent USE-CANDIDATE setzt, löst die Komponente OnICEConnectionStateChanged mit iceConnected und schließlich iceCompleted für das endgültig ausgewählte Paar aus.
Implementiert RFC-7675-Consent-Freshness-Probes — periodische STUN-BindingRequests auf dem nominierten Paar, mit OnICEConnectionStateChanged(iceFailed), wenn der Consent verloren geht.
Die Komponente setzt keinen bestimmten Signalling-Kanal voraus — du serialisierst lokale Kandidaten über dein WebSocket-/SIP-/HTTP-Signalling und speist Remote-Kandidaten wieder ein.
Springe direkt zur Komponentenreferenz, hole dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.
| Online-Hilfe — TsgcICEClient Vollständige Referenz zu Eigenschaften, Methoden und Ereignissen dieser Komponente. | Öffnen | |
| Demo-Projekt — Demos\35.P2P\04.ICE 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 |