Entwickler-Ecke

Internet / Netzwerk - Problem bei Dateiübertragung via IndyFTP


daimoi - So 25.04.10 01:06
Titel: Problem bei Dateiübertragung via IndyFTP
Hey Leute,
Ich versuche gerade Dateien über die IndyFTP auszutauschen, aber wenn ich versuche den .GET Befehl beim Clienten auszuführen erhalte ich folgende Fehlermeldung beim Clienten aus der ich nicht schlau werde:
"Data port can only be used by the same IP address used by the control connection."

Weiß einer was da falsch läuft? Die Dataports habe ich auf 0 und der Client ist passiv.
Wenn ich versuche Lokal eine Datei zu übertragen klappt es, wenn ich aber versuche durchs Internet zu übertragen erhalte ich den o.g. Fehler.

Der Port für den Clienten ist offen, es scheitert beim übertragen.


Xentar - So 25.04.10 02:44

Hast du mal etwas Code für uns?

Besteht die FTP Verbindung schon, wenn du das .Get aufrufst?


daimoi - So 25.04.10 13:02

Habs schon selbst gelöst, einfach beim Server unter FTPSecurityOptions (im Object Inspector) das RequirePASVFromSameIP und das RequirePORTFromSameIP ausschalten. Fertig.


daimoi - So 25.04.10 15:25

Okay, anderes Problem. Komischerweise erhalte ich jetzt die Fehlermeldung am Client "Indy FTP Server ready." gefolgt von einem "Not logged in."

Client:

Delphi-Quelltext
1:
2:
3:
4:
  IdFTP1.Username := UserIDEdit.Text;
  IdFTP1.Password := PasswordEdit.Text;
  IdFTP1.Host := FtpServerEdit.Text;
  IdFTP1.Connect;

Server:

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm22.ServerUserLogin(ASender: TIdFTPServerContext;
  const AUsername, APassword: stringvar AAuthenticated: Boolean);
begin
  AAuthenticated := True;
end;

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


ALF - So 25.04.10 15:41

Hi, und wo vergleichst Du Username und Password bevor Du AAuthenticated := True; setzt!?
Oder passiert dies woanders!?

Gruss Alf


daimoi - So 25.04.10 16:06

user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
Hi, und wo vergleichst Du Username und Password bevor Du AAuthenticated := True; setzt!?
Oder passiert dies woanders!?

Gruss Alf

Gar nicht, ich logge mich anonym ein.
Ich möchte keinen FTP Server in dem Sinne erstellen sondern einfach Dateien zwischen Client und Server (in beide Richtungen) übertragen und das mache ich über das FTP Protokoll.


Xentar - So 25.04.10 17:02

Wenn du einfach nur Daten austauschen möchtest, warum nimmst du dann nicht einen normalen TCP Clien und Server?


daimoi - So 25.04.10 17:07

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du einfach nur Daten austauschen möchtest, warum nimmst du dann nicht einen normalen TCP Clien und Server?

Weil die A. nicht in beide Richtungen gehen und B. umständlicher sind.

Übrigens hab ich's jetzt hinbekommen, hatte beim Client ein OnConnected Event stehen. Keine Ahnung wieso dass einen Fehler verursacht, aber nach dem entfernen geht es.


Xentar - So 25.04.10 17:20

user profile icondaimoi hat folgendes geschrieben Zum zitierten Posting springen:
Weil die A. nicht in beide Richtungen gehen

Tun sie nicht? Dann bedien ich die wohl falsch, dass das geht :(

user profile icondaimoi hat folgendes geschrieben Zum zitierten Posting springen:
Übrigens hab ich's jetzt hinbekommen, hatte beim Client ein OnConnected Event stehen. Keine Ahnung wieso dass einen Fehler verursacht, aber nach dem entfernen geht es.

Ok, dann ist die Frage wohl erledigt :)