Serveur UDP pour Delphi

Écoute les datagrammes UDP sur un port et achemine chacun vers ton application. Le même moteur qui anime TsgcSTUNServer et TsgcTURNServer.

TsgcUDPServer

Écouteur UDP haute performance — lie-toi à un port, reçois des datagrammes de tout pair, réponds à des endpoints spécifiques, le tout via un seul socket lié.

Classe du composant

TsgcUDPServer

Protocole

UDP (RFC 768)

Plateformes

Windows, macOS, Linux, iOS, Android

Édition

Professional / Enterprise

Pose, écoute, réponds

Configure Port, Active := True, puis traite les datagrammes entrants dans OnUDPRead et réponds via Socket.WriteData — un socket, autant de pairs distants que tu veux.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDPServer contient FServer: TsgcUDPServer et le gestionnaire

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
  // renvoie l'écho au pair d'où vient le datagramme
  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)
{
  // renvoie l'écho au pair d'où vient le datagramme
  Socket->WriteData(TBytes(Bytes));
}

Sous le capot

Un écouteur UDP qui remet chaque datagramme à ton gestionnaire avec le TsgcUDPSocket sur lequel il est arrivé, qui est aussi le chemin de réponse.

Un port, plusieurs pairs

Un seul socket lié gère les datagrammes provenant de n'importe quel nombre d'endpoints distants. Chaque OnUDPRead se déclenche avec un TsgcUDPSocket dont IP et Port identifient l'expéditeur.

Chemin de réponse

Socket.WriteData renvoie un datagramme au pair d'origine via le même socket, et le serveur propose aussi WriteData(ip, port, ...) pour n'importe quel autre endpoint.

WatchDog

WatchDog redémarre l'écouteur quand il cesse de répondre, et OnBeforeWatchDog te donne la possibilité d'opposer un veto au redémarrage. OnStartup et OnShutdown encadrent chaque liaison.

IPv4 / IPv6 et plusieurs bindings

Configure IPVersion pour la famille, ou ajoute une entrée par adresse à Bindings avec AddBinding, RemoveBinding et GetBinding quand le serveur doit écouter sur plusieurs adresses.

Utilisé sous TsgcSTUNServer / TsgcTURNServer

Les serveurs STUN et TURN (implémentations complètes RFC 8489 / 8656) s'appuient sur ce composant — tu peux faire de même pour tout protocole UDP personnalisé.

DTLS

Configure DTLS := True et renseigne DTLSOptions pour faire circuler les datagrammes dans une session DTLS, OnDTLSVerifyPeer décidant quels certificats de pairs tu acceptes.

Spécifications et références

Sources de référence pour le protocole implémenté par ce composant.

Documentation et démos

Lien direct vers la référence du composant, projet de démo prêt à l'emploi et téléchargement de l'essai.

Aide en ligne — TsgcUDPServer Référence complète des propriétés, méthodes et événements de ce composant.
Projet de démo — Demos\35.P2P\01.UDP_Server_Client Projet d'exemple prêt à l'emploi. Livré dans le package sgcWebSockets — télécharge l'essai ci-dessous.
Document technique (PDF) Fonctionnalités, démarrage rapide, exemples de code Delphi et C++ Builder et références primaires — ce composant uniquement.
Manuel utilisateur (PDF) Manuel complet couvrant tous les composants de la bibliothèque.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Prêt à faire tourner un serveur UDP ?

Télécharge l'essai gratuit et écoute les datagrammes UDP depuis Delphi.