Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi e. Datei vom TServerSocket a. d. TClientSocket schicken. (https://www.delphipraxis.net/18788-e-datei-vom-tserversocket-d-tclientsocket-schicken.html)

Vader 24. Mär 2004 17:02


e. Datei vom TServerSocket a. d. TClientSocket schicken.
 
hallo,


entschuldigung hab vorher bwas ich abgeschickt habe einen teil des codes vergessen.!!!!!


hab da einen code und möchte gerne, das der client im ereigniss clientsocket1connect,
wo der stream dann die datei hineinschreibt, mit einem speicherndialog,und nicht ,wie in diesen code wo ich schon vorher den pfad angeben muß umändern, aber ich komm nicht weiter.

client
Code:
private
 
    FStream: TFileStream;

    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Stream: TFileStream;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.active:=true;
end;



procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
  iLen: Integer;
  Bfr: Pointer;
begin
  iLen := Socket.ReceiveLength;
  GetMem(Bfr, iLen);
  try
    Socket.ReceiveBuf(Bfr^, iLen);
    FStream.Write(Bfr^, iLen);
  finally
    FreeMem(Bfr);
  end;


end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 FStream := nil;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  if Assigned(FStream) then
  begin
    FStream.Free;
    FStream := nil;
  end;

end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
 if Assigned(FStream) then
  begin
    FStream.Free;
    FStream := nil;
  end;

end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  FStream := TFileStream.Create('c:\abc\sigi.stream.bmp', fmCreate or fmShareDenyWrite);
end;

end.
server

Code:
    FStream: TFileStream;

    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}




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

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
 Socket.SendStream(TFileStream.Create('c:\ab\sigi.bmp', fmOpenRead or fmShareDenyWrite));
end;



end.

wer kann mir da weiter helfen.


mfg vader

atreju2oo0 24. Mär 2004 17:08

Re: e. Datei vom TServerSocket a. d. TClientSocket schicken.
 
Kann das leider gerade nicht testen aber hat TFileStream nicht ne Eigenschaft FileName???
Dann müsstest du nur noch folgendes hinzufügen:

Code:
if opendialog1.execute then Stream.Filename:=opendialog.filename
Im übrigen ist es nicht gerne gesehen wenn Du hier zwei mal das selbe Problem postest...
Du kannst alles was von Dir ist auch im nachhinein ändern, indem Du ganz oben auf ändern drückst...
(für's nächste Mal...)

:-D

Vader 25. Mär 2004 17:05

Re: e. Datei vom TServerSocket a. d. TClientSocket schicken.
 
hallo atreju2oo0,

das funzt nicht .


mfg vader


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