Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Probleme beim Versenden von Dateien mit Indy TCPClient (https://www.delphipraxis.net/9489-probleme-beim-versenden-von-dateien-mit-indy-tcpclient.html)

DataCool 1. Okt 2003 16:30

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Leute,

anbei ein kleines Bsp.

Schaut's auch an und gebt bitte ne Rückmeldung, wenn man was verbessern kann.

Mir schon klar das die Benutzung von TMemoryStream bei größeren Datei Probleme versucht :mrgreen:

Aber das ganze war ja auch mal schnell nebenbei gemacht :wink:

Gruß Data


P.S.: Verwendet wurde D5 mit Indy 9

holidudu 24. Apr 2004 17:45

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
Hallo Leute...

Ich habe mir den Code von DataCool ein Posting höher herunter geladen. Leider bekomme ich beim start der Client.dpr folgende Meldungen...

http://hilfebullet.de/holi/bild1.jpg

http://hilfebullet.de/holi/bild2.jpg

DataCool sagte er habe es unter D5 mit indy 9 geproggt. Kann es sein, dass mir (D6) irgendetwas fehlt?

Gruss, Holi

DataCool 24. Apr 2004 21:42

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
Hi Holidudu,

kann es sein das Du nicht die aktuellste Version der Indys benutzt ? Aktuell ist gerade 9.0.14 !!Die hab ich auch verwendet !

Download unter : Indy Download

Wenn Du Delphi 6 verwendest, ist zwar Indy mit installiert aber in einer älteren Version.

Gruß Data

holidudu 24. Apr 2004 22:35

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
Schön, dass du mir so schnell geantwortet hast. :wink:

Kannst du mir vieleicht noch erklären wie man die Indys updated? Ich bin nämlich noch nicht allzu weit mit Delphi. Bin schon froh, dass ich dieses Forum gefunden habe... :mrgreen:

Edit:
Naja... um ehrlich zu sein bin ich ein schlechter english-interpreter um die eventuellen Install-Anweisungen richtig zu verstehen. :zwinker:

DataCool 24. Apr 2004 22:49

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
Hi,

wie war das den gleich noch mal :gruebel: Angaben ohne Gewähr :mrgreen:

1. Das Indy Package deinstallieren und entfernen.

2. In irgenteinem Unterverzeichnis von Delphi 6 müssen alle Indy-Dateien(Id*.pas und Id*.dcu) gelöscht werden.

3. Danach das neue Indy-Package installieren

Gruß Data

holidudu 24. Apr 2004 23:50

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
hehe... lieb von dir! :drunken:

Ok... das krieg ich auch anderweitig (seltsames Wort) raus. :zwinker:

Aber nun mal was anderes:

Ich habe mir deinen Code mal innig angeschaut. Und nachdem ich selber nun schon über eine Woche mir den Hals nach einer funktionierenden Variante verrengt habe indem ich es selber versucht habe, muss ich angesichts deiner Leistung passen. Es gibt nach meinen google-erkenntnissen keine bessere Beschreibung für das Problem Dateien zu verschicken. Jedenfalls nicht im deutschsprachigen Raum. Mein höchster Respekt davor ist dir sicher! :wink:

Aber mal ne Frage:

Die *.exe Dateien funktionieren ja auch bei mir... auch ohne indy-update.

Aber warum bekommt der Server keine SaveDialog-Abfrage? Ich meine... sowas müsste doch vor dem Senden der Parts geschehen, oder?
Ich kann Dateien versenden mit Statusanzeige auf beiden Seiten. Genial! Nur wie speichere ich das Empfangene... und wo? :freak:

DataCool 25. Apr 2004 00:12

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
Hi,

also wenn Dir meine Arbeit so gefällt, dann zieh Dir www.telwell.de]TelWell Messenger[/URL]
rein, das ist ein Messenger den ich auf Indy Basis geschrieben habe. Meine Nummer da 1011

Aber zu Deiner Fragen :

1. Warum wird kein Save-Dialog verwendet :
Nun der Sinn einer Server-Anwenung ist es ja Multi-Threaded zu Laufen, d.h. das der Server mehere Anfragen auf einmal bearbeiten kann.
Du kannst einen Save-Dialog verwenden, dieser müßte nur syncronisiert aufgerufen werden. Aber die ist absolut gegen den Sinn eines Servers, weil der Server dann auf eine User-Eingabe warten muss und ein Server sollte selbstständig arbeiten.

2. Wie jetzt mit den gesendeten Dateien umgehen ?
Z.B. alle ankommenden Dateien in einem bestimmten Verzeichnis z.B. "Incomeing Files" ablegen. Damit die Dateinamen eindeutig sind kannst Du temporäre generierte Namen verwenden. Entweder über die Windows-Funktion oder durch z.B. "file_"+inttostr(AThread.ThreadID) oder Du schickst den Namen der Datei mit bevor Du den Stream sendest.

3. Ich habe noch ein weiters Bsp. zu dem Thema hier gepostet, weil das erste hier ein Quick-Hack war und ich mit dem Ding nicht wirklich zufrieden war :
http://www.delphipraxis.net/internal...highlight=indy

Gruß Data

holidudu 25. Apr 2004 00:36

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
Zitat:

also wenn Dir meine Arbeit so gefällt, dann zieh Dir www.telwell.de]TelWell Messenger[/URL]
rein, das ist ein Messenger den ich auf Indy Basis geschrieben habe. Meine Nummer da 1011
Das lass ich mir bestimmt nicht zweimalsagen... :mrgreen:

Danke erstmal für die tolle Hilfe hier! Ich melde mich dann morgen in aller Frische... :love:

holidudu 26. Apr 2004 20:54

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
@ DataCool

Zitat:

original von DataCool

2. Wie jetzt mit den gesendeten Dateien umgehen ?
Z.B. alle ankommenden Dateien in einem bestimmten Verzeichnis z.B. "Incomeing Files" ablegen. Damit die Dateinamen eindeutig sind kannst Du temporäre generierte Namen verwenden. Entweder über die Windows-Funktion oder durch z.B. "file_"+inttostr(AThread.ThreadID) oder Du schickst den Namen der Datei mit bevor Du den Stream sendest.
Das verstehe ich jetzt nicht ganz... warum sollte es uneindeutige FileNames geben? Der jeweilige Name der Datei wird doch jedesmal mitgeschickt, oder? :stupid:

Aber darum geht es mir eigentlich garnicht in erster Linie... :roll:

An welcher Stelle in deinem code könnte ich z.B. am besten sowas wie einen SaveDialog einbauen? Ich möchte, dass man optional wählen kann ob man das File gezielt auf Platte oder in einem Incoming speichern will. Ich bin deswegen der Meinung, (dass das Sinn macht) weil man das Programm dadurch auch fürs LAN tauglich machen würde. So nach dem Motto: "He Otto... schieb doch mal eben das neueste Moorhuhn rüber!" :arrow: :dancer2:
Und da wäre es praktisch wenn der Server-User das File gezielt ablegen könnte. Nur so als Option, weisst du? :wink:

DataCool 27. Apr 2004 10:45

Re: Probleme beim Versenden von Dateien mit Indy TCPClient
 
Hi Holidudu,

der Sinn und Unsinn des SaveDialogs ist mir schon klar :wink:

Wenn Du gerne dem Benutzer die Möglichkeit zum gezielten Speichern geben möchtest, dann mach es doch ähnlich wie Kazaa und eMule !
Mach Dir ein Verzeichnis Incoming Files ! Dort speichere zuerst die angekommenden Dateien ! In einer Listbox oder einen Listview zeigst Du dem User als empfangene Dateien an, dort kann er Sie dann über einen SaveDialog woanders hin speichern.

Wenn Du damit nur was wie einen FileTransfer wie bei ICQ hinbekommen willst, kannst Du auch mit einen Save-Dialog aus der Server Code raus arbeiten, aber wie vorher schon gesagt, dieser muss dann syncronisiert aufgerufen werden.

Gruß Data


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr.
Seite 2 von 3     12 3      

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