TsgcUDPCLient › Events › OnUDPRead
Wird ausgelöst, wenn ein eingehendes UDP-Datagramm vom Peer empfangen wurde.
property OnUDPRead: TsgcUDPReadEvent;
// TsgcUDPReadEvent = procedure(Sender: TObject; Socket: TsgcUDPSocket; Bytes: TsgcBytes) of object
—
Wird einmal pro empfangenem Datagramm ausgelöst und übergibt die rohen Bytes über den Bytes-Parameter sowie den ursprünglichen Socket (der PeerIP und PeerPort des Senders bereitstellt). Die Payload wird immer als Bytes geliefert; konvertieren Sie sie mit TEncoding, wenn das Anwendungsprotokoll Text verwendet. Der Thread, der dieses Ereignis auslöst, hängt von der NotifyEvents-Eigenschaft ab: neAsynchronous marshallt über eine Hintergrundwarteschlange, neSynchronous verwendet Synchronize und neNoSync löst direkt im Reader-Thread aus. Wenn DTLS aktiviert ist, enthält Bytes den entschlüsselten Klartext.
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;