TURN Client
Habla con un servidor TURN desde Delphi/C++Builder. Asigna direcciones de transporte retransmitidas, gestiona permisos y canales, e intercambia datos con pares detrás de NAT simétrico — según RFC 8656.
Habla con un servidor TURN desde Delphi/C++Builder. Asigna direcciones de transporte retransmitidas, gestiona permisos y canales, e intercambia datos con pares detrás de NAT simétrico — según RFC 8656.
Cliente TURN — Allocate, CreatePermission, ChannelBind, Send / Indication / Data, Refresh, todo firmado con credenciales long-term según RFC 8656.
TsgcTURNClient
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Configura servidor TURN / username / password, llama a Allocate, luego CreatePermission por cada par y Send / SendIndication para retransmitir datos.
uses
sgcP2P;
var
TURN: TsgcTURNClient;
begin
TURN := TsgcTURNClient.Create(nil);
TURN.Host := 'turn.example.com';
TURN.Port := 3478;
TURN.Authentication.UserName := 'alice';
TURN.Authentication.Password := 'secret';
TURN.OnTURNAllocated := procedure(Sender: TObject;
const aRelayedAddress, aRelayedPort: string)
begin
Memo1.Lines.Add('relay: ' + aRelayedAddress + ':' + aRelayedPort);
TURN.CreatePermission('192.0.2.1');
TURN.SendIndication('192.0.2.1', 5000, 'hello via TURN');
end;
TURN.Allocate;
end;
// uses: sgcP2P
TsgcTURNClient *TURN = new TsgcTURNClient(this);
TURN->Host = "turn.example.com";
TURN->Port = 3478;
TURN->Authentication->UserName = "alice";
TURN->Authentication->Password = "secret";
TURN->Allocate();
Un cliente TURN tipado conforme a RFC 8656 — la capa de relay para WebRTC cuando el NAT traversal solo con STUN falla.
Allocate envía la petición Allocate con REQUESTED-TRANSPORT (UDP, TCP) y obtiene una dirección de transporte retransmitida. Refresh amplía la duración; Free desasigna explícitamente.
CreatePermission(peerIp) registra un par cuyos datagramas el relay reenviará. Los permisos caducan automáticamente tras 5 minutos — refréscalos según haga falta.
ChannelBind(channelNumber, peerEndpoint) evita la sobrecarga de 36 bytes de Send/Data. El componente codifica la cabecera de 4 bytes de ChannelData automáticamente.
Authentication.UserName / Password rellenan MESSAGE-INTEGRITY usando el realm y nonce extraídos del desafío 401.
Establece el Transport del cliente subyacente a TCP o TLS para entornos que bloquean UDP — se admiten las opciones de transporte RFC 6062 / 6056.
TsgcRTCPeerConnection consume TsgcTURNClient como uno de sus IceServers — el flujo Allocate, CreatePermission y ChannelBind ocurre de forma transparente.
Accede a la referencia del componente, descarga el proyecto demo listo para ejecutar y la versión de prueba.
| Ayuda en línea — TsgcTURNClient Referencia completa de propiedades, métodos y eventos de este componente. | Abrir | |
| Proyecto demo — Demos\35.P2P\03.TURN 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 |