Serveur UDP

É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, monte en charge sur plusieurs cœurs via des threads de travail.

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 OnMessage et réponds via Connection.WriteData — un socket, autant de pairs distants que tu veux.

uses
  sgcP2P;

var
  Server: TsgcUDPServer;
begin
  Server := TsgcUDPServer.Create(nil);
  Server.Port := 4000;

  Server.OnMessage := procedure(Connection: TsgcUDPConnection;
    const aText: string)
  begin
    // echo back to the originating peer
    Connection.WriteData('echo: ' + aText);
  end;

  Server.Active := True;
end;
// uses: sgcP2P
TsgcUDPServer *Server = new TsgcUDPServer(this);
Server->Port = 4000;
Server->Active = true;

Sous le capot

Un écouteur UDP multi-thread qui achemine chaque datagramme vers un pool de workers et expose un TsgcUDPConnection pour 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 OnMessage se déclenche avec un TsgcUDPConnection identifiant le PeerIP / PeerPort d'origine.

Chemin de réponse

Connection.WriteData renvoie un datagramme au pair d'origine via le même socket — aucune liaison sortante supplémentaire nécessaire.

Distribution par threads

Un pool de workers traite les paquets entrants — configure via WorkerCount si ton gestionnaire fait un travail lourd. Le thread de réception n'est jamais bloqué.

IPv4 / IPv6 / double pile

Prend en charge la liaison IPv4-only, IPv6-only ou double pile via IPVersion. Les jointures de groupes multicast sont exposées via JoinMulticastGroup.

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é.

Indicateur no-fragment

Configure DontFragment := True sur les écritures sortantes — utile pour le sondage path-MTU dans des protocoles personnalisés.

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.

Prêt à faire tourner un serveur UDP ?

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