Server UDP

Ascolta datagrammi UDP su una porta e instrada ciascuno alla tua applicazione. Lo stesso engine che alimenta TsgcSTUNServer e TsgcTURNServer.

TsgcUDPServer

Listener UDP ad alte prestazioni — bind a una porta, ricezione di datagrammi da qualunque peer, risposta a endpoint specifici, scalabilità sui core tramite worker thread.

Classe componente

TsgcUDPServer

Protocollo

UDP (RFC 768)

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Professional / Enterprise

Trascina, ascolta, rispondi

Imposta Port, Active := True, poi gestisci i datagrammi in arrivo in OnMessage e rispondi tramite Connection.WriteData — un solo socket, qualunque numero di peer remoti.

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;

Cosa c'è all'interno

Un listener UDP multi-thread che distribuisce ogni datagramma a un pool di worker ed espone una TsgcUDPConnection per il percorso di risposta.

Una porta, molti peer

Un solo socket associato gestisce datagrammi da qualunque numero di endpoint remoti. Ogni OnMessage si attiva con una TsgcUDPConnection che identifica l'origine tramite PeerIP / PeerPort.

Percorso di risposta

Connection.WriteData invia un datagramma al peer di origine usando lo stesso socket — nessun binding in uscita aggiuntivo necessario.

Dispatch threaded

Un pool di worker elabora i pacchetti in arrivo — configura tramite WorkerCount se il tuo handler fa lavoro pesante. Il thread di ricezione non viene mai bloccato.

IPv4 / IPv6 / dual-stack

Supporta binding IPv4-only, IPv6-only o dual-stack tramite IPVersion. I join ai gruppi multicast sono esposti tramite JoinMulticastGroup.

Usato sotto TsgcSTUNServer / TsgcTURNServer

I server STUN e TURN (implementazioni complete RFC 8489 / 8656) si basano su questo componente — puoi fare lo stesso per qualunque protocollo UDP personalizzato.

Hint no-fragment

Imposta DontFragment := True sulle scritture in uscita — utile per il probing del path-MTU in protocolli personalizzati.

Specifiche e riferimenti

Fonti autorevoli per il protocollo implementato da questo componente.

Documentazione e demo

Collegamenti diretti al riferimento del componente, al progetto demo pronto all'uso e al download della versione di prova.

Guida online — TsgcUDPServer Riferimento completo di proprietà, metodi ed eventi di questo componente.
Progetto demo — Demos\35.P2P\01.UDP_Server_Client Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto.
Documento tecnico (PDF) Funzionalità, guida rapida, esempi di codice per Delphi e C++ Builder e riferimenti alle fonti primarie — solo per questo componente.
Manuale utente (PDF) Manuale completo che copre ogni componente della libreria.

Pronto a eseguire un server UDP?

Scarica la versione di prova gratuita e ascolta datagrammi UDP da Delphi.