Einzelnen Beitrag anzeigen

Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#1

Socket.Sendstream (Tmemory Stream Verschicken)

  Alt 5. Dez 2006, 11:15
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;
  Mit Zitat antworten Zitat