TsgcTCPClient › 이벤트 › OnBinary

OnBinary 이벤트

TCP 서버로부터 원시 바이트가 수신되었을 때 발생합니다.

구문

property OnBinary: TsgcWSBinaryEvent;
// TsgcWSBinaryEvent = procedure(Connection: TsgcWSConnection; const Data: TMemoryStream) of object

기본값

—

설명

TsgcTCPClient는 WebSocket 핸드셰이크 없이 원시 TCP를 사용하므로 유형이 지정된 프레임이 없으며, 따라서 OnBinary는 소켓에서 읽은 그대로의 바이트를 전달합니다. TCPEndOfFrameScanBuffer가 eofScanNone인 경우 모든 소켓 읽기가 버퍼링된 내용으로 이벤트를 트리거합니다. eofScanLatestBytes 또는 eofScanAllBytes인 경우 스트림은 TCPEndOfFrame 구분 기호로 분할되고 논리적 프레임당 하나의 이벤트가 발생합니다. Data 매개변수는 디코딩된 바이트를 위치 0에 놓인 TMemoryStream으로 노출합니다. 스트림은 클라이언트가 소유하며 핸들러가 반환된 후에는 무효화되므로 즉시 읽으십시오. 기본적으로 NotifyEvents는 neAsynchronous이므로 OnBinary는 메인 스레드와 동기화되며 핸들러에서 UI 컨트롤을 업데이트하는 것이 안전합니다. 동기화를 피하고 스레드 안전을 직접 처리해야 하는 경우 neNoSync로 전환하십시오.

예제


procedure OnBinary(Connection: TsgcWSConnection; const Data: TMemoryStream);
var
  oBytes: TBytes;
begin
  SetLength(oBytes, Data.Size);
  Data.Position := 0;
  Data.ReadBuffer(oBytes[0], Data.Size);
  // ... process the raw TCP payload
end;

이벤트로 돌아가기