STUN Client
Descubre tu endpoint reflexivo detrás de NAT con un cliente STUN tipado (RFC 8489). Se usa como paso inicial para la recopilación de candidatos ICE y WebRTC.
Descubre tu endpoint reflexivo detrás de NAT con un cliente STUN tipado (RFC 8489). Se usa como paso inicial para la recopilación de candidatos ICE y WebRTC.
Cliente STUN — Binding requests, extracción de XOR-MAPPED-ADDRESS, soporte de MESSAGE-INTEGRITY / FINGERPRINT, temporizador de retransmisión según RFC 8489.
TsgcSTUNClient
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
Configura el host/puerto del servidor STUN, llama a SendBindingRequest y lee MappedAddress / MappedPort desde 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 cliente STUN tipado conforme a RFC 8489 con las extensiones message-integrity y fingerprint usadas por ICE.
SendBindingRequest envía el mensaje STUN 0x0001; la respuesta aparece en OnSTUNMappedAddress con el atributo XOR-MAPPED-ADDRESS parseado.
Configura Authentication.UserName / Password y el componente calcula MESSAGE-INTEGRITY (HMAC-SHA1 / HMAC-SHA256). El realm y el nonce se extraen de la respuesta de desafío 401.
STUN sobre UDP requiere retransmisión en la capa de aplicación. El componente implementa el back-off estándar (RTO / Rc / Rm) según RFC 8489 §6.2.1.
XOR-MAPPED-ADDRESS llega en cualquiera de las familias — el componente decodifica ambas y almacena la forma textual canónica en MappedAddress.
Maneja varias instancias de TsgcSTUNClient contra varios servidores STUN para recopilar candidatos ICE server-reflexive — uno por cada interfaz local.
Usa TsgcUDPClient internamente; el binding al puerto local es configurable para que STUN, ICE y la ruta de datos puedan compartir un endpoint cuando sea necesario.
Accede a la referencia del componente, descarga el proyecto demo listo para ejecutar y la versión de prueba.
| Ayuda en línea — TsgcSTUNClient Referencia completa de propiedades, métodos y eventos de este componente. | Abrir | |
| Proyecto demo — Demos\35.P2P\02.STUN Proyecto de ejemplo listo para ejecutar. Se incluye dentro del paquete sgcWebSockets — descarga la prueba abajo. | Abrir | |
| Documento técnico (PDF) Características, inicio rápido, ejemplos de código para Delphi y C++ Builder y referencias a fuentes primarias — solo este componente. | Abrir | |
| Manual de usuario (PDF) Manual completo que cubre cada componente de la biblioteca. | Abrir |