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.
Lausche an einem Port auf UDP-Datagramme und leite jedes davon an deine Anwendung weiter. Dieselbe Engine, die auch TsgcSTUNServer und TsgcTURNServer antreibt.
Hochperformanter UDP-Listener — binde an einen Port, empfange Datagramme von beliebigen Peers, antworte spezifischen Endpunkten, alles über einen einzigen gebundenen Socket.
TsgcUDPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
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));
}
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 gebundener Socket bedient Datagramme von beliebig vielen Remote-Endpunkten. Jedes OnUDPRead wird mit einer TsgcUDPSocket ausgelöst, deren IP und Port den Absender identifizieren.
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 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.
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.
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.
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.
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. | Öffnen | |
| Demo-Projekt — Demos\35.P2P\01.UDP_Server_Client Sofort lauffähiges Beispielprojekt. Wird im sgcWebSockets-Paket mitgeliefert — lade unten die Testversion herunter. | Öffnen | |
| Technisches Dokument (PDF) Funktionen, Schnellstart, Code-Beispiele für Delphi & C++ Builder und Primärquellen-Referenzen — nur diese Komponente. | Öffnen | |
| Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek abdeckt. | Öffnen |