UDP-Server

Lausche an einem Port auf UDP-Datagramme und leite jedes davon an deine Anwendung weiter. Dieselbe Engine, die auch TsgcSTUNServer und TsgcTURNServer antreibt.

TsgcUDPServer

Hochperformanter UDP-Listener — binde an einen Port, empfange Datagramme von beliebigen Peers, antworte spezifischen Endpunkten und skaliere mit Worker-Threads über Cores.

Komponentenklasse

TsgcUDPServer

Protokoll

UDP (RFC 768)

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Professional / Enterprise

Platzieren, lauschen, antworten

Setze Port, Active := True, verarbeite eingehende Datagramme in OnMessage und antworte über Connection.WriteData — ein Socket, beliebig viele Remote-Peers.

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;

Was steckt drin

Ein multithreaded UDP-Listener, der jedes Datagramm an einen Worker-Pool verteilt und eine TsgcUDPConnection für den Antwortpfad bereitstellt.

Ein Port, viele Peers

Ein gebundener Socket bedient Datagramme von beliebig vielen Remote-Endpunkten. Jedes OnMessage wird mit einer TsgcUDPConnection ausgelöst, die PeerIP / PeerPort des Absenders identifiziert.

Antwortpfad

Connection.WriteData schickt ein Datagramm an den Absender zurück und nutzt dabei denselben Socket — keine zusätzliche ausgehende Bindung nötig.

Thread-basierte Verteilung

Ein Worker-Pool verarbeitet eingehende Pakete — konfigurierbar über WorkerCount, falls dein Handler aufwendige Arbeit leistet. Der Empfangs-Thread wird nie blockiert.

IPv4 / IPv6 / Dual-Stack

Unterstützt IPv4-only-, IPv6-only- oder Dual-Stack-Bindung über IPVersion. Multicast-Gruppen-Beitritte sind über JoinMulticastGroup verfügbar.

Basis für TsgcSTUNServer / TsgcTURNServer

Die STUN- und TURN-Server (vollständige RFC-8489-/-8656-Implementierungen) bauen auf dieser Komponente auf — du kannst dasselbe für jedes eigene UDP-Protokoll tun.

No-Fragment-Hinweis

Setze DontFragment := True bei ausgehenden Writes — nützlich für Path-MTU-Probing in eigenen Protokollen.

Spezifikationen & Referenzen

Maßgebliche Quellen für das Protokoll, das diese Komponente implementiert.

Dokumentation & Demos

Springe direkt zur Komponentenreferenz, hole dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.

Online-Hilfe — TsgcUDPServer Vollständige Referenz zu Eigenschaften, Methoden und Ereignissen dieser Komponente.
Demo-Projekt — Demos\35.P2P\01.UDP_Server_Client Sofort lauffähiges Beispielprojekt. Wird im sgcWebSockets-Paket mitgeliefert — lade unten die Testversion herunter.
Technisches Dokument (PDF) Funktionen, Schnellstart, Code-Beispiele für Delphi & C++ Builder und Primärquellen-Referenzen — nur diese Komponente.
Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek abdeckt.

Bereit, einen UDP-Server zu betreiben?

Lade die kostenlose Testversion herunter und lausche auf UDP-Datagramme aus Delphi.