AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy FTP: Probleme mit sehr langsamen Verbindungen
Thema durchsuchen
Ansicht
Themen-Optionen

Indy FTP: Probleme mit sehr langsamen Verbindungen

Ein Thema von andreasm82 · begonnen am 5. Mai 2010 · letzter Beitrag vom 1. Dez 2011
Antwort Antwort
Seite 2 von 3     12 3      
andreasm82

Registriert seit: 23. Nov 2009
66 Beiträge
 
#11

Re: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 20. Mai 2010, 14:49
Wenn,dann müsste ich den Transfertype im Programmablauf umstellen, da ich sowohl Windows als auch Linux Systeme abfrage.

Zumindest bei den Linux-Systemen wäre Binary kein Problem, wenn da nicht die Compiler-Fehlermeldung wäre:

Zitat:
[Fehler] FTPUnit.pas(66): Undefinierter Bezeichner: 'ftBinary'
[Fehler] FTPUnit.pas(68): Undefinierter Bezeichner: 'ftASCII'
[Fataler Fehler] FTPUnit.pas(24): Verwendete Unit 'FTPUnit' kann nicht compiliert werden
Delphi-Quellcode:
if (TurbineController = 'CX')
then
  IdFTP.TransferType := ftBinary
else
  IdFTP.TransferType := ftASCII;


Und momentan ist die geschwindigkeit wieder hoch, so dass ich es nicht testen kann. Ich müsste mal schauen, wie ich die Geschwindigkeit irgendwie drosseln kann.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.194 Beiträge
 
Delphi 2007 Architect
 
#12

Re: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 20. Mai 2010, 14:54
Hi,

deklariert ist es in der IdFTPCommon. Also die einfach in die uses nehmen und es passt.

Gruss
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
andreasm82

Registriert seit: 23. Nov 2009
66 Beiträge
 
#13

Re: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 25. Mai 2010, 11:01
Zitat:
deklariert ist es in der IdFTPCommon. Also die einfach in die uses nehmen und es passt.
Super, so klappt es.


Mit der anderen Version 4017 und der Geschwindigkeitsbegrenzung werde ich die Tage mal schauen.
  Mit Zitat antworten Zitat
andreasm82

Registriert seit: 23. Nov 2009
66 Beiträge
 
#14

Re: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 27. Mai 2010, 10:16
Zitat:
Nach meinen erfahrungen sind in der 4017 am wenigsten fehler drin.
Momentan bin ich diese Version am testen.

Bei langsamen Verbindungen oder Abbrüchen hängte sich das Programm bisher mal noch nicht auf. Es erkannte nun einen socket Error (timeout oder connection reset by peer).
Hoffen wir mal, dass es so bleibt

Ist es erlaubt, dass ich diese Version auf meiner Homepage spiegele und als Download bereitstelle?
Denn die Installation war diesmal so problemlos, das konnte ich kaum glauben!
Compiliert, in delphi die beiden indy bpl Dateien eingebunden, fertig!
Wenn ich überlege, was ich mir bisher einen Stress gemacht hatte, da es nicht funktionierte (alte indy dateien gesucht und gelöscht,
Pfade im delphi überprüft, tempordner geleert, in delphi mehrmals in den optionen geschaut, .... ).
und diesmal gehts direkt.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.194 Beiträge
 
Delphi 2007 Architect
 
#15

Re: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 27. Mai 2010, 14:12
Freut mich das es geklappt hat.

Ob du das über eine WebPage weitergeben darsft weiss ich nicht. Da müsstest du dich mit den Indy-leuten in verbindung setzen. Das DOC-File was ich beigepackt hatte..... leider weiss ich nichtmehr ob das aus mehreren quellen stammt. Schon garnicht aus welchen.

Aber das kannst du ja quasi "abschreiben" und gleich ins deutsche übersetzen.

Gruss
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#16

Re: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 27. Mai 2010, 14:50
Die Indies stehen unter einer modifizierten BSD- oder der MPL-Lizenz.
Damit kannst du damit machen was du willst, solange du es nicht als deinen eigenen Code ausgibts ("allows you to do almost anything you want with Indy, provided you provide proper attribution" - Quelle).

Du kannst das Paket also bedenkenlos auf deiner Homepage zum Download anbieten.
Manuel
  Mit Zitat antworten Zitat
andreasm82

Registriert seit: 23. Nov 2009
66 Beiträge
 
#17

AW: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 7. Jun 2010, 12:12
Zitat:
Nach meinen erfahrungen sind in der 4017 am wenigsten fehler drin.
Schade, diese Version scheint auch etwas buggy zu sein.

wenn ich mein Programm mehrere Tage am Stück laufen lasse, so kommt es irgendwann vor, dass ich bei FTP oder HTTP Verbindungen
scheinbar grundlose Fehlermeldungen bekomme. Es ist dann IMMER:
Fehler: EIdSocketError:Socket Error # 10054 Connection reset by peer.

Sobald ich das Programm neustarte, funktioniert wieder alles.
Am Programm selbst habe ich bzgl. FTP und HTTP nichts geändert.

In der Vergangenheit trat dies mit anderen Versionen der Indy Bibliotheken nie auf.

Was tun?
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.194 Beiträge
 
Delphi 2007 Architect
 
#18

AW: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 8. Jun 2010, 21:18
Hi,

das problem kenn ich. Das kannst du selber fixen. Da du ja teilweise keine "sauberen" verbindung hast passiert es in idFTP.pas im SendCmd. Da ein try/except rein und es sollte behoben sein. Es gibt noch eine stelle wo er abkackt. Aber ich kann dir im moment nicht genau sagen wo das war. Leider kann ich dir keine exakte zeilennummer nennen, da ich mein idFTP schon zu sehr geändert habe damit es läuft.

Wenn du mit Indy arbeitest und besonders wenn du programme hast die einfach nur laufen sollen (24/7, rund um die Uhr) wäre es gut wenn du dir madException drauf machst. Dann siehst du auch genau wo der fehler passiert.

Ich habe meins so abgeändert, das er aufjeden fall "wiederkommt". Dann resette ich die verbindung indem ich sie trenne und neu verbinde.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
andreasm82

Registriert seit: 23. Nov 2009
66 Beiträge
 
#19

AW: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 11. Jun 2010, 18:48
Zitat:
Da du ja teilweise keine "sauberen" verbindung hast passiert es in idFTP.pas im SendCmd
Sorry, dass ich hierzu nochmal Nachfrage. Sendcmd wird in der idftp.pas zig mal aufgerufen, an welcher Stelle sollte das try except am besten hinein?

Vielen Dank!
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.194 Beiträge
 
Delphi 2007 Architect
 
#20

AW: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 11. Jun 2010, 19:21
Wieso "sorry". Dafür ist das forum doch da. Anbei die änderung die ich bei mir gemacht habe. Müsste so ca. bei zeile 2000 sein. Ich hoffe das hilft dir weiter.

Gruss


Edit ich habe nun mal ein Compare gemacht. An folgenden stellen ist es enthalten. Mit diesen änderungen sollte es auf jedenfall wiederkommen. Wichtig ist das du dann beide Connections trennst und neu verbindest. Anders bekommt man (bzw. ich) das nichtmehr auf die füsse.

Delphi-Quellcode:
procedure TIdFTP.SendTransferType(AValue: TIdFTPTransferType);
var
  s: string;
begin
  s := '';
  case AValue of
    ftAscii: s := 'A'; {do not localize}
    ftBinary: s := 'I'; {do not localize}
    else
      raise EIdFTPUnsupportedTransferType.Create(RSFTPUnsupportedTransferType);
  end;
  try
    SendCmd('TYPE ' + s, 200); {do not localize}
  except
  end;
end;
Delphi-Quellcode:
procedure TIdFTP.DisconnectNotifyPeer;
begin
  if IOHandler.Connected then begin
    try
      IOHandler.WriteLn('QUIT'); {do not localize}
    except
    end;
    IOHandler.CheckForDataOnSource(100);
    if not IOHandler.InputBufferIsEmpty then begin
      GetInternalResponse;
    end;
  end;
end;
Delphi-Quellcode:
procedure TIdFTP.SendInternalPassive(const ACmd: String; var VIP: string;
  var VPort: TIdPort);
var
  i, bLeft, bRight: integer;
  s: string;
begin
  SendDataSettings;
  try
    SendCmd(ACmd, 227); {do not localize}
  except
  end;
Delphi-Quellcode:
procedure TIdFTP.SendPBSZ;
begin
  {NOte that PBSZ - protection buffer size must always be zero for FTP TLS}
  if FUsingSFTP or (FUseTLS = utUseImplicitTLS) then begin
    //protection buffer size
    try
      SendCmd('PBSZ 0'); {do not localize}
    except
    end;
  end;
end;
Delphi-Quellcode:
procedure TIdFTP.SendDataSettings;
begin
  if FUsingSFTP then begin
    if not FUsingCCC then begin
      SendPBSZ;
      try
        SendPROT;
      except
      end;
      if FUseCCC then begin
        FUsingCCC := (SendCmd('CCC') div 100) = 2; {do not localize}
        if FUsingCCC then begin
         (IOHandler as TIdSSLIOHandlerSocketBase).PassThrough := True;
        end;
      end;
    end;
  end;
end;
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (11. Jun 2010 um 19:35 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:17 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