Server STUN

Esegui il tuo server STUN (RFC 8489) in Delphi. Rispondi alle richieste binding con la risposta canonica XOR-MAPPED-ADDRESS — utile in reti private, deployment on-premise e bootstrap ICE.

TsgcSTUNServer

Un server STUN tipizzato RFC 8489 — elabora messaggi Binding / Indication, risponde con XOR-MAPPED-ADDRESS, opzionalmente impone MESSAGE-INTEGRITY per autenticazione long-term.

Classe componente

TsgcSTUNServer

Protocollo

STUN (RFC 8489)

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Enterprise

Trascina, imposta la porta, hai un endpoint STUN

Imposta Port (default 3478), Active := True — il tuo server ora risponde alle richieste Binding con la risposta canonica XOR-MAPPED-ADDRESS RFC 8489.

uses
  sgcP2P;

var
  STUNServer: TsgcSTUNServer;
begin
  STUNServer := TsgcSTUNServer.Create(nil);
  STUNServer.Port := 3478;

  // optional: long-term credentials
  STUNServer.Authentication.Enabled  := True;
  STUNServer.Authentication.Realm    := 'example.com';
  STUNServer.OnSTUNAuthenticate := procedure(Sender: TObject;
    const aUsername: string; var aPassword: string;
    var Accept: Boolean)
  begin
    aPassword := LookupPassword(aUsername);
    Accept    := aPassword <> '';
  end;

  STUNServer.Active := True;
end;
// uses: sgcP2P
TsgcSTUNServer *STUNServer = new TsgcSTUNServer(this);
STUNServer->Port = 3478;
STUNServer->Active = true;

Cosa c'è all'interno

Un server STUN self-hosted — ideale per deployment WebRTC on-premise e test in cloud privato.

Handler per richieste Binding

Le richieste Binding in ingresso ricevono risposta con XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (legacy) e FINGERPRINT — conforme alla forma di risposta standard RFC 8489.

Auth long-term / short-term

Attiva Authentication.Enabled per richiedere MESSAGE-INTEGRITY. OnSTUNAuthenticate espone lo username dalla richiesta, così restituisci la password corrispondente dal tuo store.

Rate limit per IP

Combina con TsgcWSRateLimiter per limitare le richieste STUN in ingresso per IP sorgente — protezione utile contro abusi di amplification.

IPv4 / IPv6

Bind a una famiglia o dual-stack tramite IPVersion. La risposta XOR-MAPPED-ADDRESS usa la famiglia del trasporto in ingresso.

TLS su TCP (RFC 8489 §5)

Per la variante STUN-over-TLS configura il listener TCP sottostante con opzioni SSL — utile quando UDP è bloccato all'uscita di rete.

Diagnostica

OnSTUNRequest / OnSTUNResponse registrano ogni transazione, inclusi Method, MessageType e l'elenco di attributi decodificato — ottimo per il debug dei deployment.

Specifiche e riferimenti

Fonti autorevoli per il protocollo implementato da questo componente.

Documentazione e demo

Collegamenti diretti al riferimento del componente, al progetto demo pronto all'uso e al download della versione di prova.

Guida online — TsgcSTUNServer Riferimento completo di proprietà, metodi ed eventi di questo componente.
Progetto demo — Demos\35.P2P\02.STUN Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto.
Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente.
Manuale utente (PDF) Manuale completo che copre ogni componente della libreria.

Pronto a eseguire il tuo server STUN?

Scarica la versione di prova gratuita e avvia un endpoint STUN in Delphi.