TsgcUDPCLient › Events › OnUDPRead
Wywoływane po odebraniu przychodzącego datagramu UDP od peera.
property OnUDPRead: TsgcUDPReadEvent;
// TsgcUDPReadEvent = procedure(Sender: TObject; Socket: TsgcUDPSocket; Bytes: TsgcBytes) of object
—
Wywoływane raz dla każdego odebranego datagramu, przekazując nieprzetworzone bajty przez parametr Bytes oraz źródłowe Socket (które udostępnia PeerIP i PeerPort nadawcy). Ładunek jest zawsze dostarczany jako bajty; należy konwertować go za pomocą TEncoding, jeśli protokół aplikacji używa tekstu. Wątek wywołujący to zdarzenie zależy od właściwości NotifyEvents: neAsynchronous przekazuje przez kolejkę w tle, neSynchronous używa Synchronize, a neNoSync wywołuje bezpośrednio na wątku czytającym. Gdy włączone jest DTLS, Bytes zawiera odszyfrowany tekst jawny.
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;