Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Download Server Client ? (https://www.delphipraxis.net/18057-download-server-client.html)

Vader 13. Mär 2004 17:10


Download Server Client ?
 
hallo,

möchte ganz simpel das der server eine datei den client schickt.

server

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
 FStream: TFileStream;
begin
 i
FStream := TFileStream.Create('c:\Windows\cookies');
ServerSocket1.Socket.SendStream(FStream);
 end;

end;
client

Code:
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
 FStream: TFileStream;
 SizeOfFile: Integer;
 pBuffer: Pointer;

begin

  if SaveDialog1.Execute then
  begin
 

  FStream := TFileStream.Create(SaveDialog1.FileName, fmCreate or fmOpenWrite);
  SizeOfFile := Socket.ReceiveLength;
  GetMem(pBuffer, SizeOfFile);
  try
   Socket.ReceiveBuf(pBuffer^, SizeOfFile);
   FStream.Write(pBuffer^, SizeOfFile);
  finally
   FreeMem(pBuffer);
   FStream.Free;
   Adress.Text := 'File fertig geladen';
  end;
   end;
end;

aber das funzt nicht so richtig.

[Fehler] Unit1.pas(38): Es gibt keine überladene Version von 'Create', die man mit diesen Argumenten aufrufen kann

mfg vader


mfg vader

Wilder 13. Mär 2004 17:24

Re: Download Server Client ?
 
schau mal unter TFilestream.create in der OH(onlineHilfe) nach.
Dort findest du den Hinweis, daß zum erstellen eines TStreams ein Parameter fehlt.

beim Server müsste es statt:
Delphi-Quellcode:
FStream := TFileStream.Create('c:\Windows\cookies');
eher so oder ähnlich heissen(je nachdem, was bezweckt werden soll):
Delphi-Quellcode:
FStream := TFileStream.Create('c:\Windows\cookies',fmcreate);

Vader 13. Mär 2004 19:53

Re: Download Server Client ?
 
hab das bißchen umgeschreiben,


server


Code:
rocedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.active:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 FStream: TFileStream;
begin

FStream := TFileStream.Create('c:\aco.txt',fmopenread);
ServerSocket1.Socket.SendStreamThenDrop(FStream);
 end;



end.

aber es passiert nichts, der speicherndialog beim client kommt nicht ?

mfg vader

Wilder 14. Mär 2004 13:41

Re: Download Server Client ?
 
zur beantwortung deiner Frage wäre der Client-Sourcecode nicht schlecht ;)
Ausserdem solltest du den Socket nicht nur auf aktiv setzen, sonder auch mal öffnen

Vader 15. Mär 2004 18:10

Re: Download Server Client ?
 
hallo wilder,
du schreibst: ich soll die sockets auf open setzen,ist
clientsocket.active:=true; oder
clientsocket.open; nicht das gleiche ???


mfg vader


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 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 by Thomas Breitkreuz