UDP Server

Escute datagramas UDP em uma porta e despache cada um para sua aplicação. O mesmo motor que alimenta TsgcSTUNServer e TsgcTURNServer.

TsgcUDPServer

Listener UDP de alto desempenho — vincula a uma porta, recebe datagramas de qualquer peer, responde a endpoints específicos e escala entre núcleos via worker threads.

Classe do componente

TsgcUDPServer

Protocolo

UDP (RFC 768)

Plataformas

Windows, macOS, Linux, iOS, Android

Edição

Professional / Enterprise

Adicione, escute, responda

Defina Port, Active := True, trate os datagramas de entrada em OnMessage e responda via Connection.WriteData — um socket, qualquer número de peers remotos.

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;
// usa: sgcP2P
TsgcUDPServer *Server = new TsgcUDPServer(this);
Server->Port = 4000;
Server->Active = true;

O que tem por dentro

Um listener UDP multi-threaded que despacha cada datagrama para um pool de workers e expõe um TsgcUDPConnection para o caminho de resposta.

Uma porta, muitos peers

Um único socket vinculado trata datagramas de qualquer número de endpoints remotos. Cada OnMessage é disparado com um TsgcUDPConnection identificando o PeerIP / PeerPort de origem.

Caminho de resposta

Connection.WriteData envia um datagrama de volta ao peer de origem usando o mesmo socket — sem necessidade de vinculação de saída extra.

Despacho com threads

Um pool de workers processa os pacotes de entrada — configure via WorkerCount se seu handler realiza trabalho pesado. A thread de recepção nunca é bloqueada.

IPv4 / IPv6 / dual-stack

Suporta vinculação somente IPv4, somente IPv6 ou dual-stack via IPVersion. Entradas em grupos multicast são expostas através de JoinMulticastGroup.

Usado por TsgcSTUNServer / TsgcTURNServer

Os servidores STUN e TURN (implementações completas RFC 8489 / 8656) são construídos sobre este componente — você pode fazer o mesmo para qualquer protocolo UDP personalizado.

Dica de não fragmentação

Defina DontFragment := True nas escritas de saída — útil para sondagem de MTU de caminho em protocolos personalizados.

Especificações & referências

Fontes oficiais do protocolo que este componente implementa.

Documentação & Demos

Acesse a referência do componente, pegue o projeto demo pronto para executar e baixe a versão de avaliação.

Ajuda online — TsgcUDPServer Referência completa de propriedades, métodos e eventos deste componente.
Projeto demo — Demos\35.P2P\01.UDP_Server_Client Exemplo pronto para executar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo.
Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fontes primárias — somente deste componente.
Manual do usuário (PDF) Manual completo cobrindo todos os componentes da biblioteca.

Pronto para Executar um Servidor UDP?

Baixe o trial gratuito e escute datagramas UDP a partir do Delphi.