Server STUN per Delphi
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.
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.
Un server STUN tipizzato RFC 8489 — elabora messaggi Binding / Indication, risponde con XOR-MAPPED-ADDRESS, opzionalmente impone MESSAGE-INTEGRITY per autenticazione long-term.
TsgcSTUNServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
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, sgcP2P_STUN_Classes;
// TFormSTUNServer contiene FServer: TsgcSTUNServer e l'handler
procedure TFormSTUNServer.StartServer;
begin
FServer := TsgcSTUNServer.Create(nil);
FServer.Port := 3478;
// opzionale: credenziali long term
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
// restituisci la password di quell'utente, vuota rifiuta la richiesta
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;
Un server STUN self-hosted — ideale per deployment WebRTC on-premise e test in cloud privato.
Le richieste Binding in ingresso ricevono risposta con XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (legacy) e FINGERPRINT — conforme alla forma di risposta standard RFC 8489.
Attiva STUNOptions.Authentication.Enabled per richiedere MESSAGE-INTEGRITY e imposta il realm su LongTermCredentials.Realm. OnSTUNRequestAuthorization ti espone username e realm, e tu restituisci la password corrispondente.
STUNOptions.BindingAttributes attiva o disattiva i legacy MAPPED-ADDRESS di RFC 3489, OTHER-ADDRESS, RESPONSE-ORIGIN e SOURCE-ADDRESS, e AlternateServer risponde 300 Try Alternate con il server che indichi.
Bind a una famiglia o dual-stack tramite IPVersion. La risposta XOR-MAPPED-ADDRESS usa la famiglia del trasporto in ingresso.
LongTermCredentials.StaleNonce stabilisce per quanto tempo un nonce resta valido. Una volta scaduto il server risponde 438 Stale Nonce con uno nuovo, che è quanto richiede RFC 8489 §9.2.
OnSTUNRequestSuccess e OnSTUNRequestError ti consegnano la richiesta e la risposta che il server sta per inviare, con un var Accept che puoi azzerare. LogFile scrive su disco lo scambio grezzo.
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. | Apri | |
| Progetto demo — Demos\35.P2P\02.STUN Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto. | Apri | |
| Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente. | Apri | |
| Manuale utente (PDF) Manuale completo che copre ogni componente della libreria. | Apri |
Domande comuni sull'esecuzione di un server STUN self-hosted in Delphi e C++ Builder.
TsgcSTUNServer, imposta Port (default 3478) e imposta Active := True. Il server risponde quindi alle richieste Binding in ingresso con la risposta canonica XOR-MAPPED-ADDRESS. Facoltativamente abilita Authentication e gestisci OnSTUNRequestAuthorization per richiedere MESSAGE-INTEGRITY con credenziali a lungo termine.TsgcSTUNServer è un server STUN self-hosted che integri direttamente nella tua applicazione Delphi o C++ Builder, quindi non devi distribuire e gestire un'istanza coturn separata. È ideale per reti private, deployment WebRTC on-premise e bootstrapping ICE sotto il tuo controllo.