TsgcUDPCLient › 이벤트 › OnUDPRead
피어로부터 수신 UDP 데이터그램이 수신될 때 발생합니다.
property OnUDPRead: TsgcUDPReadEvent;
// TsgcUDPReadEvent = procedure(Sender: TObject; Socket: TsgcUDPSocket; Bytes: TsgcBytes) of object
—
수신된 데이터그램마다 한 번 발생하며, Bytes 매개변수를 통해 원시 바이트를, 그리고 발신지 Socket(발신자의 PeerIP와 PeerPort를 노출함)을 전달합니다. 페이로드는 항상 바이트로 전달됩니다. 애플리케이션 프로토콜이 텍스트를 사용하는 경우 TEncoding으로 변환하십시오. 이 이벤트를 발생시키는 스레드는 NotifyEvents 속성에 따라 달라집니다. neAsynchronous는 백그라운드 큐를 통해 마샬링하고, neSynchronous는 Synchronize를 사용하며, neNoSync는 리더 스레드에서 직접 발생합니다. DTLS가 활성화된 경우, Bytes는 복호화된 일반 텍스트를 포함합니다.
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;