Das Senden von IdTCPServer habe ich erst mal so gemacht:
Delphi-Quellcode:
procedure TForm2.OnScreenShot(Sender: TObject; BMP:
Vcl.Graphics.TBitmap);
var
i: Integer;
List: TIdContextList;
Context: TIdContext;
ms: TMemoryStream;
begin
if idtcpsrvr1.Active
then
begin
ms:=TMemoryStream.Create;
try
BMP.SaveToStream(ms);
List:=idtcpsrvr1.Contexts.LockList;
for I := 0
to List.Count-1
do
begin
Context:=TIdContext(List[i]);
ms.Position:=0;
Context.Connection.Socket.
Write(ms, SizeOf(ms));
end;
finally
ms.Free;
end;
end;
end;
Wo ich aber noch nicht weiß, wie ich das mit dem Datenempfang im IdTCPClient zu machen. Die Komponente besitzt ja keinen Trigger der mich über den Empfang benachrichtigt. Ich dachte mir ich packe das in einen Thread und frage laufend ab, ob Daten zum Empfang anliegen. Oder gibt es da eine bessere Möglichkeit?