Client STUN
Découvre ton point de terminaison réflexif derrière un NAT avec un client STUN (RFC 8489) typé. Utilisé comme étape d'amorçage pour la collecte de candidats ICE et WebRTC.
Découvre ton point de terminaison réflexif derrière un NAT avec un client STUN (RFC 8489) typé. Utilisé comme étape d'amorçage pour la collecte de candidats ICE et WebRTC.
Client STUN — requêtes Binding, extraction de XOR-MAPPED-ADDRESS, prise en charge de MESSAGE-INTEGRITY / FINGERPRINT, minuteur de retransmission selon la RFC 8489.
TsgcSTUNClient
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
Configure l'hôte/port du serveur STUN, appelle SendBindingRequest, puis lis MappedAddress / MappedPort dans OnSTUNMappedAddress.
uses
sgcP2P;
var
STUN: TsgcSTUNClient;
begin
STUN := TsgcSTUNClient.Create(nil);
STUN.Host := 'stun.l.google.com';
STUN.Port := 19302;
STUN.OnSTUNMappedAddress := procedure(Sender: TObject;
const aMappedAddress, aMappedPort: string)
begin
Memo1.Lines.Add('public: ' + aMappedAddress + ':' + aMappedPort);
end;
STUN.SendBindingRequest;
end;
// uses: sgcP2P
TsgcSTUNClient *STUN = new TsgcSTUNClient(this);
STUN->Host = "stun.l.google.com";
STUN->Port = 19302;
STUN->SendBindingRequest();
Un client STUN typé conforme à la RFC 8489, avec les extensions message-integrity et fingerprint utilisées par ICE.
SendBindingRequest envoie le message STUN 0x0001 ; la réponse remonte dans OnSTUNMappedAddress avec l'attribut XOR-MAPPED-ADDRESS analysé.
Configure Authentication.UserName / Password et le composant calcule MESSAGE-INTEGRITY (HMAC-SHA1 / HMAC-SHA256). Le realm et le nonce sont extraits de la réponse de défi 401.
STUN sur UDP exige une retransmission au niveau applicatif. Le composant implémente le back-off standard (RTO / Rc / Rm) selon la RFC 8489 §6.2.1.
XOR-MAPPED-ADDRESS revient dans l'une ou l'autre famille — le composant décode les deux et stocke la forme texte canonique dans MappedAddress.
Pilote plusieurs instances de TsgcSTUNClient contre différents serveurs STUN pour collecter des candidats ICE server-reflexive — un par interface locale.
Utilise TsgcUDPClient en interne ; la liaison du port local est configurable, pour que STUN, ICE et le chemin de données puissent partager un point de terminaison si nécessaire.
Lien direct vers la référence du composant, projet de démo prêt à l'emploi et téléchargement de l'essai.
| Aide en ligne — TsgcSTUNClient Référence complète des propriétés, méthodes et événements de ce composant. | Ouvrir | |
| Projet de démo — Demos\35.P2P\02.STUN Projet d'exemple prêt à l'emploi. Livré dans le package sgcWebSockets — télécharge l'essai ci-dessous. | Ouvrir | |
| Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code Delphi et C++ Builder et références primaires — ce composant uniquement. | Ouvrir | |
| Manuel utilisateur (PDF) Manuel complet couvrant tous les composants de la bibliothèque. | Ouvrir |