TsgcUDPCLient › Eventos › OnUDPRead
Disparado quando um datagrama UDP recebido foi recebido do peer.
property OnUDPRead: TsgcUDPReadEvent;
// TsgcUDPReadEvent = procedure(Sender: TObject; Socket: TsgcUDPSocket; Bytes: TsgcBytes) of object
—
Disparado uma vez por datagrama recebido, passando os bytes brutos através do parâmetro Bytes e o Socket de origem (que expõe PeerIP e PeerPort do remetente). O payload é sempre entregue como bytes; converta-o com TEncoding se o protocolo da aplicação utilizar texto. A thread que dispara este evento depende da propriedade NotifyEvents: neAsynchronous faz o marshaling através de uma fila em segundo plano, neSynchronous utiliza Synchronize e neNoSync dispara diretamente na thread leitora. Quando o DTLS está habilitado, Bytes contém o texto simples descriptografado.
procedure TForm1.oClientUDPRead(Sender: TObject; Socket: TsgcUDPSocket;
Bytes: TsgcBytes);
begin
Memo1.Lines.Add(Format('From %s:%d -> %s',
[Socket.PeerIP, Socket.PeerPort, TEncoding.UTF8.GetString(Bytes)]));
end;