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.
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.
Cliente de datagramas UDP de alto rendimiento — la base bajo STUN, TURN, ICE, RTCPeerConnection y cualquier protocolo UDP personalizado que escribas.
TsgcUDPClient
Windows, macOS, Linux, iOS, Android
Core / Standard / Professional / Enterprise
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
}
Una capa de socket UDP fina y predecible que se usa como transporte para STUN / TURN / ICE / WebRTC y cualquier protocolo de datagramas personalizado.
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ó.
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 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.
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.
IPVersion se pasa directamente al socket subyacente, así que configúralo a Id_IPv6 cuando necesites la ruta IPv6.
Todo componente P2P superior (TsgcSTUNClient, TsgcTURNClient, TsgcICEClient, TsgcRTCPeerConnection) utiliza este cliente internamente como su transporte UDP.
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. | Abrir | |
| 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. | 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 |