![]() |
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 |
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... ![]() ![]() DataCool sagte er habe es unter D5 mit indy 9 geproggt. Kann es sein, dass mir (D6) irgendetwas fehlt? Gruss, Holi |
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 : ![]() Wenn Du Delphi 6 verwendest, ist zwar Indy mit installiert aber in einer älteren Version. Gruß Data |
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: |
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 |
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: |
Re: Probleme beim Versenden von Dateien mit Indy TCPClient
Hi,
also wenn Dir meine Arbeit so gefällt, dann zieh Dir ![]() 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 : ![]() Gruß Data |
Re: Probleme beim Versenden von Dateien mit Indy TCPClient
Zitat:
Danke erstmal für die tolle Hilfe hier! Ich melde mich dann morgen in aller Frische... :love: |
Re: Probleme beim Versenden von Dateien mit Indy TCPClient
@ DataCool
Zitat:
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: |
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. |
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