Servidor UDP para Delphi
Escucha datagramas UDP en un puerto y despacha cada uno a tu aplicación. El mismo motor que impulsa TsgcSTUNServer y TsgcTURNServer.
Escucha datagramas UDP en un puerto y despacha cada uno a tu aplicación. El mismo motor que impulsa TsgcSTUNServer y TsgcTURNServer.
Listener UDP de alto rendimiento — asocia a un puerto, recibe datagramas de cualquier par, responde a endpoints concretos, todo a través de un único socket asociado.
TsgcUDPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
Configura Port, Active := True y luego gestiona los datagramas entrantes en OnUDPRead y responde mediante Socket.WriteData — un socket, cualquier número de pares remotos.
uses
sgcP2P, sgcUDP_Classes, sgcSocket_Classes;
// TFormUDPServer contiene FServer: TsgcUDPServer y el handler
procedure TFormUDPServer.StartServer;
begin
FServer := TsgcUDPServer.Create(nil);
FServer.Port := 4000;
FServer.OnUDPRead := OnUDPRead;
FServer.Active := True;
end;
procedure TFormUDPServer.OnUDPRead(Sender: TObject;
Socket: TsgcUDPSocket; Bytes: TsgcBytes);
begin
// devuelve el eco al par del que vino el datagrama
Socket.WriteData(TBytes(Bytes));
end;
// includes: sgcP2P.hpp, sgcUDP_Classes.hpp, sgcSocket_Classes.hpp
TsgcUDPServer *Server = new TsgcUDPServer(this);
Server->Port = 4000;
Server->OnUDPRead = OnUDPRead;
Server->Active = true;
void __fastcall TFormUDPServer::OnUDPRead(TObject *Sender,
TsgcUDPSocket *Socket, TsgcBytes Bytes)
{
// devuelve el eco al par del que vino el datagrama
Socket->WriteData(TBytes(Bytes));
}
Un listener UDP que entrega cada datagrama a tu handler junto con el TsgcUDPSocket por el que llegó, que es también la ruta de respuesta.
Un único socket asociado gestiona datagramas de cualquier número de endpoints remotos. Cada OnUDPRead se dispara con un TsgcUDPSocket cuyos IP y Port identifican al emisor.
Socket.WriteData devuelve un datagrama al par de origen usando el mismo socket, y el servidor incluye además WriteData(ip, port, ...) para cualquier otro endpoint.
WatchDog reinicia el listener cuando deja de responder, y OnBeforeWatchDog te da la oportunidad de vetar el reinicio. OnStartup y OnShutdown delimitan cada binding.
Configura IPVersion para la familia, o añade una entrada por dirección a Bindings con AddBinding, RemoveBinding y GetBinding cuando el servidor tenga que escuchar en varias.
Los servidores STUN y TURN (implementaciones completas de RFC 8489 / 8656) se construyen sobre este componente — puedes hacer lo mismo para cualquier protocolo UDP personalizado.
Configura DTLS := True y rellena DTLSOptions para ejecutar los datagramas dentro de una sesión DTLS, con OnDTLSVerifyPeer decidiendo qué certificados de par aceptas.
Accede a la referencia del componente, descarga el proyecto demo listo para ejecutar y la versión de prueba.
| Ayuda en línea — TsgcUDPServer 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 |