Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi screenshot (bild) vom server zum clienten senden? [Gelöst] (https://www.delphipraxis.net/23691-screenshot-bild-vom-server-zum-clienten-senden-%5Bgeloest%5D.html)

Hari 8. Jun 2004 01:37


screenshot (bild) vom server zum clienten senden? [Gelöst]
 
Liste der Anhänge anzeigen (Anzahl: 1)
hallo alle!

ich brauche schon wieder dringen eure hilfe.

ich möchte ein screenshot vom server zu clienten senden.
mit den komponenten tserver / Tclientsocket.

das mit den screenshots bekomm ich hin aber die bild datei dann
an den clienten zu senden, bekomm ich einfachn nicht hin.
es kommt immer eine datei mit 0 kb an.

vieleicht könnte mir jemand eine kleine (einfache) demo geben?
ich suche schon seit 16:00 uhr bis jetzt 2:30 und ich komm einfach nicht weiter.
für jede hilfe währe ich dankbar.
wenn sich jemand das programm ansehen will, dann werde ichs mailen.
den quelltext will ich deshalb hir nicht posten da er schon so gross ist und ich keine ahnung hab welchen teil ich hir reinposten sollte, weil das schon ein ziemliches durcheinander ist.



mfg. hari

Luckie 8. Jun 2004 02:28

Re: screenshot (bild) vom server zum clienten senden?
 
Sind bei den Indys keine Demos dabei?

Hari 8. Jun 2004 16:25

Re: screenshot (bild) vom server zum clienten senden?
 
Zitat:

Zitat von Luckie
Sind bei den Indys keine Demos dabei?

ich verwende die komponenten Tsocket /Tclientserver, und ich möchte es auch mit diesen hinbekommen.
ich hab ja schon vieles darüber gefunden, und auch gehört das es geht, aber scheinbar mache ich irgend etwas falsch. deshalb wollte ich eine demo haben, wo ich mir das ansehen kann. oder das es jemand für mich "deppensicher" : :roteyes: erklärt.

sakura 8. Jun 2004 16:28

Re: screenshot (bild) vom server zum clienten senden?
 
Hi, entferne bitte die Aufforderung Dir die Lösung als Email zuzusenden (inkl. der Adresse). Entweder Du zahlst für eine spezielle Lösung oder die Lösung ist für alle :zwinker:

...:cat:...

Hari 9. Jun 2004 01:35

Re: screenshot (bild) vom server zum clienten senden?
 
ich habs geschaft!!! jetzt kann ich entlich auch vom client zum server senden ohne das nur 8,00kb ankommen, und zwar so:

DER SERVER
Code:
 unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;

type
  TForm1 = class(TForm)
    ServerSocket1: TServerSocket;
    Label1: TLabel;
    procedure ServerSocket1ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
    FStream: TFileStream;
implementation

{$R *.dfm}

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
   FStream := TFileStream.Create('C:\temp\screenshothari.bmp', fmOpenRead);
Socket.SendStream(FStream);
end;

end.
DER CLIENT

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp, ExtCtrls;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    Label1: TLabel;
    Button1: TButton;
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure Button1Click(Sender: TObject);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
   FStream: TFileStream;
  SizeOfFile: Integer;
  pBuffer: Pointer;
   AlreadyReceived: integer;
     FileStream: TFileStream;
     Buffer: array[0..4096] of Byte; // die Größe des Puffers ist beliebig, müsste nur (s.u.)
 SizeOfBuffer: integer;

implementation

{$R *.dfm}

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var

 Buffer: array[0..4096] of Byte; // die Größe des Puffers ist beliebig, müsste nur (s.u.)
 SizeOfBuffer: integer;

  begin
 pBuffer := @Buffer;
  SizeOfBuffer := Socket.ReceiveBuf(pBuffer^, 4096); //hier angeglichen werden
  FileStream.Write(pBuffer^, SizeOfBuffer);
  Inc(AlreadyReceived, SizeOfBuffer);
  Socket.SendText(IntToStr(AlreadyReceived));

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Active:=false;
filestream.Free;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
    FileStream := TFileStream.Create('c:\temp\datei2.bmp', fmCreate or fmOpenWrite);
end;

end.

mfg. hari


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 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