Cliente UDP para Delphi

Envía y recibe datagramas UDP desde Delphi/C++Builder. IPv4 e IPv6, una sesión DTLS opcional y una ruta SOCKS5, y el transporte sobre el que se construye toda la pila STUN, TURN, ICE y WebRTC.

TsgcUDPClient

Cliente de datagramas UDP de alto rendimiento — la base bajo STUN, TURN, ICE, RTCPeerConnection y cualquier protocolo UDP personalizado que escribas.

Clase del componente

TsgcUDPClient

Protocolo

UDP (RFC 768)

Plataformas

Windows, macOS, Linux, iOS, Android

Edición

Core / Standard / Professional / Enterprise

Coloca el componente, envía paquetes

Configura Host / Port, Active := True y luego llama a WriteData con el texto o los bytes que quieras enviar. Los datagramas entrantes llegan a OnUDPRead.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDP contiene FClient: TsgcUDPClient y FIncoming: TStringList

procedure TFormUDP.CreateClient;
begin
  FClient := TsgcUDPClient.Create(nil);
  FClient.Host := '127.0.0.1';
  FClient.Port := 4000;

  FClient.OnUDPRead := OnUDPRead;

  FClient.Active := True;
  FClient.WriteData('hello over UDP');
end;

procedure TFormUDP.OnUDPRead(Sender: TObject; Socket: TsgcUDPSocket;
  Bytes: TsgcBytes);
var
  oStream: TStringStream;
begin
  // se dispara en el hilo de lectura, sincroniza antes de tocar un control
  oStream := TStringStream.Create('');
  try
    oStream.Write(Bytes[0], Length(Bytes));
    FIncoming.Add(oStream.DataString);
  finally
    oStream.Free;
  end;
end;
// includes: sgcP2P.hpp, sgcUDP_Classes.hpp, sgcSocket_Classes.hpp
TsgcUDPClient *Client = new TsgcUDPClient(this);
Client->Host = "127.0.0.1";
Client->Port = 4000;
Client->OnUDPRead = OnUDPRead;

Client->Active = true;
Client->WriteData("hello over UDP");

void __fastcall TFormUDP::OnUDPRead(TObject *Sender,
  TsgcUDPSocket *Socket, TsgcBytes Bytes)
{
  // se dispara en el hilo de lectura, sincroniza antes de tocar un control
}

Qué incluye

Una capa de socket UDP fina y predecible que se usa como transporte para STUN / TURN / ICE / WebRTC y cualquier protocolo de datagramas personalizado.

Envío/recepción unicast

WriteData(text) y WriteData(bytes) ponen en cola un datagrama hacia Host / Port, y las sobrecargas que reciben una dirección lo envían a cualquier otro destino. OnUDPRead entrega cada paquete entrante junto con el socket por el que llegó.

DTLS

Configura DTLS := True y rellena DTLSOptions para transportar los datagramas dentro de una sesión DTLS. OnDTLSVerifyPeer te entrega el certificado del par para que decidas si lo aceptas.

Proxy SOCKS5

Proxy transporta los datagramas a través de un UDP ASSOCIATE de SOCKS5. Un proxy HTTP se rechaza con EsgcUDPProxyNotSupported, porque solo SOCKS5 define una ruta UDP.

El socket del que lees

Cada OnUDPRead lleva un TsgcUDPSocket: IP y Port identifican al emisor, LocalIP y LocalPort identifican la base local que ICE publica después como candidato host.

IPv4 / IPv6

IPVersion se pasa directamente al socket subyacente, así que configúralo a Id_IPv6 cuando necesites la ruta IPv6.

Usado bajo la pila P2P

Todo componente P2P superior (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) utiliza este cliente internamente como su transporte UDP.

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 — TsgcUDPClient Referencia completa de propiedades, métodos y eventos de este componente.
Proyecto demo — Demos\35.P2P\01.UDP_Server_Client 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.
La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

¿Listo para enviar UDP desde Delphi?

Descarga la prueba gratuita y añade soporte de datagramas UDP a tus aplicaciones Delphi.