Hallo, ich habe folgenes problem:
Ich grabbe ein Bild von meiner webcam.... dieses Wird dann in ein Bitma geschrieben...
nun soll auch knopfdruck das bild in ein Memorystream Geschrieben werden..
und dieser Stream Soll dann auch gesendet werden..
Das problem ist das beim Empfänger kein onread ereignis ausgelöst wird...
aso er dementsprechen den stream nicht sendet.
das bild wird in den stream geschrieben, allerdings nicht versendet.
Streamgröße > 0 (57654);
Sender:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var strlen: int64;
begin
sm:=TMemoryStream.Create;
memo1.Lines.Add('Packe Bild in Stream');
changebmp1.SaveToStream(sm);
strlen:=sm.Size;
memo1.Lines.Add('Streamlänge: '+inttostr(strlen));
memo1.Lines.Add('Versende Stream');
serversocket1.Socket.Connections[0].SendStream(sm);
end;
Empfänger:
Delphi-Quellcode:
procedure TForm3.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
iLen: Integer;
Bfr: Pointer;
begin
memo1.Lines.Add('Empfange Stream');
iLen := Socket.ReceiveLength;
GetMem(Bfr, iLen);
try
Socket.ReceiveBuf(Bfr^, iLen);
MyStream.Write(Bfr^, iLen);
finally
image1.Picture.Bitmap.LoadFromStream(MyStream);
FreeMem(Bfr);
end;
end;
für hilfe währe ich dankbar
MfG Real Thunder
Edit:
Habe vergessen die Position wieder auf 0 zu setzten
also
sm.position:=0;