Delphi STUN Server
Betreibe deinen eigenen STUN-Server (RFC 8489) in Delphi. Beantworte Binding-Requests mit der kanonischen XOR-MAPPED-ADDRESS-Antwort — nützlich in privaten Netzwerken, On-Premise-Deployments und beim ICE-Bootstrap.
Betreibe deinen eigenen STUN-Server (RFC 8489) in Delphi. Beantworte Binding-Requests mit der kanonischen XOR-MAPPED-ADDRESS-Antwort — nützlich in privaten Netzwerken, On-Premise-Deployments und beim ICE-Bootstrap.
Ein typisierter RFC-8489-STUN-Server — verarbeitet Binding-/Indication-Nachrichten, antwortet mit XOR-MAPPED-ADDRESS und erzwingt optional MESSAGE-INTEGRITY für Long-Term-Authentifizierung.
TsgcSTUNServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Setze Port (Standard 3478), Active := True — dein Server beantwortet jetzt Binding-Requests mit der kanonischen RFC-8489-XOR-MAPPED-ADDRESS-Antwort.
uses
sgcP2P, sgcP2P_STUN_Classes;
// TFormSTUNServer enthält FServer: TsgcSTUNServer und den Handler
procedure TFormSTUNServer.StartServer;
begin
FServer := TsgcSTUNServer.Create(nil);
FServer.Port := 3478;
// optional: Long-Term-Credentials
FServer.STUNOptions.Authentication.Enabled := True;
FServer.STUNOptions.Authentication.LongTermCredentials.Enabled := True;
FServer.STUNOptions.Authentication.LongTermCredentials.Realm :=
'example.com';
FServer.OnSTUNRequestAuthorization := OnSTUNRequestAuthorization;
FServer.Active := True;
end;
procedure TFormSTUNServer.OnSTUNRequestAuthorization(Sender: TObject;
const aRequest: TsgcSTUN_Message;
const aUsername, aRealm: string;
var Password: string);
begin
// das Passwort dieses Benutzers zurückgeben, leer lehnt die Anfrage ab
Password := LookupPassword(aUsername);
end;
// includes: sgcP2P.hpp, sgcP2P_STUN_Classes.hpp
TsgcSTUNServer *Server = new TsgcSTUNServer(this);
Server->Port = 3478;
Server->STUNOptions->Authentication->Enabled = true;
Server->STUNOptions->Authentication->LongTermCredentials->Enabled = true;
Server->STUNOptions->Authentication->LongTermCredentials->Realm = "example.com";
Server->OnSTUNRequestAuthorization = OnSTUNRequestAuthorization;
Server->Active = true;
Ein selbst gehosteter STUN-Server — ideal für On-Premise-WebRTC-Deployments und Private-Cloud-Tests.
Eingehende Binding-Requests werden mit XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (Legacy) und FINGERPRINT beantwortet — entsprechend der Standard-RFC-8489-Antwortstruktur.
Schalte STUNOptions.Authentication.Enabled ein, um MESSAGE-INTEGRITY zu verlangen, und setze den Realm auf LongTermCredentials.Realm. OnSTUNRequestAuthorization liefert dir den Benutzernamen und den Realm, und du gibst das passende Passwort zurück.
STUNOptions.BindingAttributes schaltet das alte MAPPED-ADDRESS nach RFC 3489 sowie OTHER-ADDRESS, RESPONSE-ORIGIN und SOURCE-ADDRESS ein oder aus, und AlternateServer antwortet mit 300 Try Alternate und dem Server, den du angibst.
Bindung an eine der Familien oder Dual-Stack über IPVersion. Die XOR-MAPPED-ADDRESS-Antwort verwendet die Familie des eingehenden Transports.
LongTermCredentials.StaleNonce legt fest, wie lange eine Nonce gültig bleibt. Nach Ablauf antwortet der Server mit 438 Stale Nonce und einer frischen Nonce, genau so, wie RFC 8489 §9.2 es verlangt.
OnSTUNRequestSuccess und OnSTUNRequestError übergeben dir die Anfrage und die Antwort, die der Server gleich senden wird, samt einem var Accept, das du zurücksetzen kannst. LogFile schreibt den rohen Nachrichtenaustausch auf die Festplatte.
Springe direkt zur Komponentenreferenz, hole dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.
| Online-Hilfe — TsgcSTUNServer 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 |
Häufige Fragen zum Betrieb eines selbst gehosteten STUN-Servers in Delphi und C++ Builder.
TsgcSTUNServer-Komponente, setze Port (Standard 3478) und setze Active := True. Der Server beantwortet eingehende Binding-Requests dann mit der kanonischen XOR-MAPPED-ADDRESS-Antwort. Aktiviere optional Authentication und behandle OnSTUNRequestAuthorization, um MESSAGE-INTEGRITY mit Long-Term-Credentials zu verlangen.TsgcSTUNServer ist ein selbst gehosteter STUN-Server, den du direkt in deine eigene Delphi- oder C++ Builder-Anwendung einbettest, sodass du keine separate coturn-Instanz bereitstellen und betreiben musst. Er ist ideal für private Netzwerke, On-Premise-WebRTC-Deployments und das ICE-Bootstrapping unter deiner eigenen Kontrolle.