AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy Übertragung -> Programm reagiert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Indy Übertragung -> Programm reagiert nicht

Ein Thema von t0b4d · begonnen am 1. Apr 2007 · letzter Beitrag vom 13. Apr 2007
Antwort Antwort
t0b4d

Registriert seit: 23. Nov 2006
8 Beiträge
 
#1

Indy Übertragung -> Programm reagiert nicht

  Alt 1. Apr 2007, 19:32
Hey,

ich benutz zwar den Borland C++Builder, aber da ist so gut wie alles gleich

Deshalb wollt ich fragen, wie ich mein Programm wärend einer Übertragung von Indy TCP Server zum Indy TCP Client "weiterlaufen" lassen kann.
Also zZ. ist es so das bei der Übertragung das Programm nicht reagiert (Fenster nicht verschieben, usw...). Gibt es da einen Trick ? Ich habe eine Fernsteuerung geschrieben mit Client und Server und da sollte so etwas nicht auftreten.


just, t0b4d
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Indy Übertragung -> Programm reagiert nicht

  Alt 1. Apr 2007, 20:52
Moin t0b4d,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Dazu fallen mir zwei Lösungsansätze ein:
  • Probiere es mal mit TidAntiFreeze.
    Das ist für solche Fälle gedacht, hat bei mir aber bislang (bei Verwendung von TidHTTP) nicht funktioniert.
  • Lagere die Verbindung in einen eigenen Thread aus.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
t0b4d

Registriert seit: 23. Nov 2006
8 Beiträge
 
#3

Re: Indy Übertragung -> Programm reagiert nicht

  Alt 2. Apr 2007, 12:53
Hey Christian,

danke für die informative Antwort aber das mit der TidAntiFreeze Komponente hat bei mir auch nicht geholfen.

Dein anderer Lösunsvorschlag hört sich sehr kompliziert an ?!

Bin deshalb die Indy Komponenten durchgegangen und hab einmal den IdThreadMgrDefault und einmal den IdThreadMgrPool gefunden.
Ich weis jetzt gar nicht ob Du das gemeint hast! Wär nett wenn Du mir das vlt. bissel genauer erklären, oder mich auf ein Tutorial
weiterleiten würdest

Ich will auch keine Lösung die ich einfach abtippen kann ich will das Problem und die Lösung verstehen - nur so lern ich was

just, t0b4d
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Indy Übertragung -> Programm reagiert nicht

  Alt 2. Apr 2007, 13:03
Er meinte wohl einen richtigen Thread.
Eine "normale" Delphianwendung hat nur einen Thread. Es kann also nur immer einwas gleichzeitig gemacht werden (also entweder Daten übertragen oder Formular verschieben). Wenn du jetzt also einen neuen Thread anlegst und darin die Übertragung statt findet kann der Hauptthread auch weiterhin das verschieben des Formulars etc. zulassen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Indy Übertragung -> Programm reagiert nicht

  Alt 2. Apr 2007, 14:14
Moin t0b4d,

zum Thema Thread solltest Du hier einiges unter dem Begriff Hier im Forum suchenTThread finden können.
Vor kurzem hatte ich dazu gerade mal einen kurzen Democode gepostet.

Auch wenn sich die Beispiele auf Delphi beziehen, dürfte die Umsetzung mit dem C++ Builder möglich sein.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
t0b4d

Registriert seit: 23. Nov 2006
8 Beiträge
 
#6

Re: Indy Übertragung -> Programm reagiert nicht

  Alt 2. Apr 2007, 15:35
kann ich mir das ganze dann so vorstellen, dass ich auf dem einen Thread eine große Datei übertrage und auf einem anderen Thread gleichzeitig was empfange ??
  Mit Zitat antworten Zitat
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Indy Übertragung -> Programm reagiert nicht

  Alt 3. Apr 2007, 00:02
Ein weiterer Lösungsvorschlag: Application.ProcessMessages in der OnWork-Passage des TIdFTP
So hats bei mir jedenfalls geklappt.
Sven Kannenberg
  Mit Zitat antworten Zitat
t0b4d

Registriert seit: 23. Nov 2006
8 Beiträge
 
#8

Re: Indy Übertragung -> Programm reagiert nicht

  Alt 13. Apr 2007, 14:08
Application.ProcessMessages ist ja eigentlich das gleiche was auch IdAntiFreeze macht bzw. umgekehrt.

Von den beiden Lösungen kann ich also nicht wirklich profitieren.

Christian Seehase gab mir den Tip mit der Transfer Verlagerung in einen eigenen Thread.
Das hab ich jetzt schon häufiger gelesen, und hab mir deshalb dieses Beispiel durchgelesen: http://bcb-tutorial.c-plusplus.de/Thread/artikel7.html

Jetzt würd ich gerne wissen ob ich die Indy Komponente zB TCPClient in dem Thread selbst anlegen soll
oder wie bisher in dem Form1.

Edit:

mein Thread Objekt sieht zZ so aus (von einem FTP test Client):
Delphi-Quellcode:
__fastcall TTransferThread::TTransferThread(String ip,String user,String pw,String filepath) : TThread(false)
{
   Form1->FTP->Username = user;
   Form1->FTP->Password = pw;
   Form1->FTP->Host = ip;
   file = filepath;
   FreeOnTerminate = true; //Aufruf von TThread::Terminate() gibt Thread frei.
}


//---------------------------------------------------------------------------
void __fastcall TTransferThread::Execute()
{
  Form1->FTP->Connect(true,4000);
   Form1->FTP->Put(file,ExtractFileName(file));
}

//---------------------------------------------------------------------------
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 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