Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mit IndyKomponente Datei senden (https://www.delphipraxis.net/31805-mit-indykomponente-datei-senden.html)

freak4fun 14. Okt 2004 09:30


Mit IndyKomponente Datei senden
 
hallo,

ich hab mir eienen chat gebaut (nur 2 chatter über ip - beide server und client) und kann texte senden und empfangen. nun will ich aber auch dateien senden, hab aber keine ahnung wie das geht. :wiejetzt:

bin dankbar für jeden hinweis, tutorial, oder anregung

mfg
freak

Elite 14. Okt 2004 09:42

Re: Mit IndyKomponente Datei senden
 
Du splittest deine Datei in Stücke à z.B. 20KB, reservierst dir Speicher auf dem Heap, legst nachheinander deine Dateifragmente da rein, verschickst sie über SendBuffer und baust sie auf der andren Seite wieder zusammen. Ich meine mit Client-, Serversocket ist das Splitten nicht mal nötig.

freak4fun 14. Okt 2004 11:33

Re: Mit IndyKomponente Datei senden
 
hallo,

ja, ne :wiejetzt:

clint-server-socket-dingens hab ich nicht glaub ich.

aber ich hab das versucht: :arrow: Delphi-Source.de und dort hab ich dei Datei 'Teststream.Date' durch 'Spiel.exe' (um die 300kB)ersetzt :pale: Da ist mir doch glatt der Firmenrechner abgeschmiert :wall: und alle Daten wech. :coder2:
naja nicht weiter schlimm :zwinker: aber wie geht des nun :gruebel:
nochmal server 'grillen' dürfte nicht drin sein :mrgreen:

mefg
freak :cyclops:

Birzenbae 14. Okt 2004 12:53

Re: Mit IndyKomponente Datei senden
 
die müssten doch eigentlich unter 'Internet' stehn und falls nich kann es sein das du die nachinstallieren musst, hab keine ahnung wie das bei Delphi 6 is, weiss nur, dass man in Delphi 7 die noch nachinstallieren musste.

freak4fun 14. Okt 2004 13:33

Re: Mit IndyKomponente Datei senden
 
hallo,

ich machs jetzt über indy mit TCPClient.WriteFile nur wie sie wieder ausgebe weiss ich noch nicht so genau, denn es gibt anscheinend kein ReadFile :(

mfg
freak

maxk 14. Okt 2004 14:51

Re: Mit IndyKomponente Datei senden
 
Das Problem ist, dass die Gegenseite wissen muss, wie groß die Datei ist, die empfangen werden soll. Wenn sie das weiss, kannst du so arbeiten:
Delphi-Quellcode:
var FS:TFileStream;
begin
 FS:=TFileStream.Create('C:\Test.txt',fmCreate);
 try
  idTCPClient1.ReadStream(FS,Dateigroesse);
 finally
  FS.Free;
 end;
end;
Du musst also vor dem Senden der Datei deinem Client mitteilen, wieviel auf ihn zukommt. Sonst weiss er nicht, wann er aufhören soll Daten zu sammeln. Alternativ kannst du auch eine zweite Verbindung öffnen (vgl. FTP) und über diese die Datei übertragen - das hätte den Vorteil, dass man während der Übertragung weiterchatten kann.

Gruß,
maxk

freak4fun 14. Okt 2004 15:22

Re: Mit IndyKomponente Datei senden
 
ja ne :shock:
ich werd ma gucken ...

:bounce2: thx for help :bounce2: :cheers:

mfg
freak


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz