AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Problem: TMemoryStream und JPEG Netzwerküberwachungssoftware
Thema durchsuchen
Ansicht
Themen-Optionen

Problem: TMemoryStream und JPEG Netzwerküberwachungssoftware

Ein Thema von LAWn-M0W3R · begonnen am 8. Sep 2006 · letzter Beitrag vom 27. Sep 2006
 
LAWn-M0W3R

Registriert seit: 31. Jul 2006
Ort: Potsdam / Berlin
38 Beiträge
 
#9

TMemoryStream, JPEG-Übertragung: Bitte helft!

  Alt 20. Sep 2006, 16:32
Leider konnte mir bisher keiner weiterhelfen. Darum schreibe ich hier noch einmal die überarbeitete Kurzform hin!
Das Problem besteht darin, dass ich erst gar keine Paketgröße erhalte!!! -> Variable SL beim Client bleibt 0!!!

Bitte, bitte helft mir!

Client
Delphi-Quellcode:
var
  Netview: TNetview;
  rSize: int64;
  rec: boolean=false;
  Stream: TMemoryStream;


procedure TNetview.ClientSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  SL : Integer;
  Pic: TJpegimage;
begin
 Log.Lines.Add(Socket.ReceiveText);
 If copy(Log.Lines[Log.Lines.Capacity-1],0,3)='#SL'
 then
 begin
  SL := Socket.ReceiveLength;
  If SL = 0 then Exit;
  If Rec
   then
    begin
     Socket.ReceiveBuf(Pointer(Int64(Stream.Memory) + Stream.Position)^, SL);
     Stream.Position := Stream.Position + SL;
      If Stream.Position = rSize
       then
        begin
         Stream.Position := 0;
         Pic := TJpegimage.Create;
            try
             Pic.LoadFromStream(Stream);
             remote.Iscreen.Picture.Assign(Pic);
             remote.Iscreen.Refresh;
            finally
             Pic.Free;
            end;
         Stream.Clear;
         FreeAndNil(Stream);
         Rec := False;
        end;
    end
   else
    begin
     rSize := StrToInt(copy(Log.Lines[Log.Lines.Capacity-1],4,length(Log.Lines[Log.Lines.Capacity])));
     Stream := TMemoryStream.Create;
     Stream.SetSize(rSize);
     Stream.Position := 0;
     Rec := True;
     Socket.SendText('#SCREENOK');
    end;
 end;
end;
Server
Delphi-Quellcode:
var
  Form1: TForm1;
  voice: Variant;
  Stream : TMemoryStream;
  JPG: TJpegImage;


procedure TForm1.ServerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Log.Lines.Add(Socket.ReceiveText);
If Log.Lines[Log.Lines.Capacity-1]='#SCREENSHOT'
then
 begin
  Stream := TMemoryStream.Create;
  try
   Screenshot; //Screenshot wird gemacht und in ca. 150kb großes TJPEGImage geladen
   JPG.SaveToStream(Stream);
  finally
   JPG.Free;
  end;
   Socket.SendText('#SL' + inttostr(Stream.Size));
 end;
If Log.Lines[Log.Lines.Capacity -1]='#SCREENOK'
then
 begin
  try
  Socket.SendBuf(Stream, Stream.Size);
  Stream.Clear;
  FreeAndNil(Stream);
  FreeAndNil(JPG);
  except
  end;
 end;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz