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 デリミタで分割され、論理フレームごとに 1 つのイベントが発生します。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;

イベントに戻る