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.

TsgcSTUNClient

Cliente STUN — Binding requests, extracción de XOR-MAPPED-ADDRESS, soporte de MESSAGE-INTEGRITY / FINGERPRINT, temporizador de retransmisión según RFC 8489.

Clase del componente

TsgcSTUNClient

Protocolo

STUN (RFC 8489)

Plataformas

Windows, macOS, Linux, iOS, Android

Edición

Standard / Professional / Enterprise

Coloca el componente, solicita la dirección reflexiva

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();

Qué incluye

Un cliente STUN tipado conforme a RFC 8489 con las extensiones message-integrity y fingerprint usadas por ICE.

Binding request / response

SendBindingRequest envía el mensaje STUN 0x0001; la respuesta aparece en OnSTUNMappedAddress con el atributo XOR-MAPPED-ADDRESS parseado.

Autenticación (long-term / short-term)

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.

Retransmisión

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.

IPv4 / IPv6

XOR-MAPPED-ADDRESS llega en cualquiera de las familias — el componente decodifica ambas y almacena la forma textual canónica en MappedAddress.

Uso como recopilador de hosts ICE

Maneja varias instancias de TsgcSTUNClient contra varios servidores STUN para recopilar candidatos ICE server-reflexive — uno por cada interfaz local.

Socket subyacente

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.

Especificaciones y referencias

Fuentes autorizadas del protocolo que implementa este componente.

Documentación y demos

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.
Proyecto demo — Demos\35.P2P\02.STUN Proyecto de ejemplo listo para ejecutar. Se incluye dentro del paquete sgcWebSockets — descarga la prueba abajo.
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.
Manual de usuario (PDF) Manual completo que cubre cada componente de la biblioteca.

¿Listo para descubrir asignaciones NAT?

Descarga la prueba gratuita y añade descubrimiento de NAT basado en STUN a tus aplicaciones Delphi.