Delphi 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, alles über einen einzigen gebundenen Socket.

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 OnUDPRead und antworte über Socket.WriteData — ein Socket, beliebig viele Remote-Peers.

uses
  sgcP2P, sgcUDP_Classes, sgcSocket_Classes;

// TFormUDPServer enthält FServer: TsgcUDPServer und den 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
  // Antwort zurück an den Peer, von dem das Datagramm kam
  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)
{
  // Antwort zurück an den Peer, von dem das Datagramm kam
  Socket->WriteData(TBytes(Bytes));
}

Was steckt drin

Ein UDP-Listener, der jedes Datagramm zusammen mit der TsgcUDPSocket an deinen Handler übergibt, auf der es eingetroffen ist und die zugleich der Antwortpfad ist.

Ein Port, viele Peers

Ein gebundener Socket bedient Datagramme von beliebig vielen Remote-Endpunkten. Jedes OnUDPRead wird mit einer TsgcUDPSocket ausgelöst, deren IP und Port den Absender identifizieren.

Antwortpfad

Socket.WriteData schickt ein Datagramm über denselben Socket an den ursprünglichen Peer zurück, und der Server bietet zusätzlich WriteData(ip, port, ...) für jeden anderen Endpunkt.

WatchDog

WatchDog startet den Listener neu, wenn er nicht mehr antwortet, und OnBeforeWatchDog gibt dir die Gelegenheit, den Neustart zu verhindern. OnStartup und OnShutdown umschließen jedes Binden.

IPv4 / IPv6 und mehrere Bindings

Setze IPVersion für die Adressfamilie, oder füge Bindings mit AddBinding, RemoveBinding und GetBinding einen Eintrag pro Adresse hinzu, wenn der Server auf mehreren lauschen muss.

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.

DTLS

Setze DTLS := True und fülle DTLSOptions, um die Datagramme innerhalb einer DTLS-Sitzung laufen zu lassen, wobei OnDTLSVerifyPeer entscheidet, welche Peer-Zertifikate du akzeptierst.

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.
Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Bereit, einen UDP-Server zu betreiben?

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