UDP-server

Luister naar UDP-datagrammen op een poort en stuur elk datagram door naar je toepassing. Dezelfde engine die TsgcSTUNServer en TsgcTURNServer aandrijft.

TsgcUDPServer

High-performance UDP-listener — bind aan een poort, ontvang datagrammen van elke peer, beantwoord specifieke endpoints en schaal over cores via worker threads.

Componentklasse

TsgcUDPServer

Protocol

UDP (RFC 768)

Platforms

Windows, macOS, Linux, iOS, Android

Editie

Professional / Enterprise

Plaatsen, luisteren, antwoorden

Stel Port in, Active := True en handel inkomende datagrammen af in OnMessage. Antwoord via Connection.WriteData — één socket, willekeurig veel 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;

Wat zit erin

Een multi-threaded UDP-listener die elk datagram naar een worker pool stuurt en een TsgcUDPConnection beschikbaar maakt voor het antwoordpad.

Eén poort, veel peers

Eén gebonden socket handelt datagrammen af van willekeurig veel remote endpoints. Elke OnMessage vuurt met een TsgcUDPConnection die de oorspronkelijke PeerIP / PeerPort identificeert.

Antwoordpad

Connection.WriteData stuurt een datagram terug naar de oorspronkelijke peer via dezelfde socket — geen extra uitgaande binding nodig.

Threaded dispatch

Een worker pool verwerkt inkomende pakketten — configureer via WorkerCount als je handler zwaar werk doet. De receive thread wordt nooit geblokkeerd.

IPv4 / IPv6 / dual-stack

Ondersteunt alleen IPv4, alleen IPv6 of dual-stack binding via IPVersion. Multicast group joins worden ontsloten via JoinMulticastGroup.

Gebruikt onder TsgcSTUNServer / TsgcTURNServer

De STUN- en TURN-servers (volledige RFC 8489 / 8656-implementaties) bouwen op dit component — jij kunt hetzelfde doen voor elk custom UDP-protocol.

No-fragment hint

Zet DontFragment := True op uitgaande writes — handig voor path-MTU probing in custom protocollen.

Specificaties & referenties

Autoritatieve bronnen voor het protocol dat dit component implementeert.

Documentatie & demo's

Direct linken naar de componentreferentie, het kant-en-klare demoproject pakken en de proefversie downloaden.

Online help — TsgcUDPServer Volledige referentie van eigenschappen, methoden en gebeurtenissen voor dit component.
Demoproject — Demos\35.P2P\01.UDP_Server_Client Kant-en-klaar voorbeeldproject. Zit in het sgcWebSockets-pakket — download hieronder de proefversie.
Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen dit component.
Gebruikershandleiding (PDF) Uitgebreide handleiding voor elk component in de bibliotheek.

Klaar om een UDP-server te draaien?

Download de gratis proefversie en luister naar UDP-datagrammen vanuit Delphi.