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.

TsgcICEClient

Implementiert den RFC-8445-ICE-Zustandsautomaten — Kandidatensammlung, Priorisierung, Paargenerierung, Konnektivitätsprüfungen (BindingRequest mit USE-CANDIDATE), Nominierung und Consent-Freshness.

Komponentenklasse

TsgcICEClient

Protokoll

ICE (RFC 8445)

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Professional / Enterprise

Server konfigurieren, sammeln, austauschen, prüfen

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();

Was steckt drin

Eine wiederverwendbare ICE-Engine, die unter TsgcRTCPeerConnection einsetzt — oder eigenständig für Nicht-WebRTC-P2P läuft.

Kandidatensammlung

Listet Host-Kandidaten von jedem lokalen Interface, Server-Reflexive-Kandidaten von jedem STUN-Server und Relayed-Kandidaten von jedem TURN-Server — alles parallel.

Paargenerierung & Priorisierung

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.

Konnektivitätsprüfungen

Sendet STUN-BindingRequests mit PRIORITY-, ICE-CONTROLLING-/ICE-CONTROLLED- und USE-CANDIDATE-Attributen gemäß Standard. Triggered Checks werden bei eingehendem Stimulus ausgelöst.

Nominierung

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.

Signalling-agnostisch

Die Komponente setzt keinen bestimmten Signalling-Kanal voraus — du serialisierst lokale Kandidaten über dein WebSocket-/SIP-/HTTP-Signalling und speist Remote-Kandidaten wieder ein.

Spezifikationen & Referenzen

Maßgebliche Quellen für das Protokoll, das diese Komponente implementiert.

Dokumentation & Demos

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.
Demo-Projekt — Demos\35.P2P\04.ICE Sofort lauffähiges Beispielprojekt. Wird im sgcWebSockets-Paket mitgeliefert — lade unten die Testversion herunter.
Technisches Dokument (PDF) Funktionen, Schnellstart, Code-Beispiele für Delphi & C++ Builder und Primärquellen-Referenzen — nur diese Komponente.
Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek abdeckt.

Bereit, ICE in Delphi zu betreiben?

Lade die kostenlose Testversion herunter und ergänze deine Delphi-Anwendungen um vollständige ICE-Kandidatensammlung und Konnektivitätsprüfungen.