2010-12-21 4 views
5

Ich versuche FTP-SSL zu bekommen, um mit Qt 4.6.3 zu arbeiten. Ich habe bereits Qt mit OpenSSL-Unterstützung kompiliert. Gibt es irgendwelche guten Ressourcen über FTPS mit Qt? Es scheint, dass QFtp keine SSL-Unterstützung bietet. Ich möchte wirklich nicht meine eigene FTPS-Implementierung erstellen.FTPS (FTP-SSL) in Qt 4.6

// bearbeiten: Ich entdeckte QNetworkAccessManager (ty @ Frank), aber ich kann keine nützliche Dokumentation oder Beispiele für SSL damit finden. Das ist was ich versuche:

Aber FileZilla wird mich nicht verbinden lassen. Die FZ-Konsole sagt:

(000035) 21.12.2010 17:31:46 - (nicht angemeldet) (127.0.0.1)> Benutzer root

(000035) 21.12.2010 17:31: 46 - (nicht angemeldet) (127.0.0.1)> 530 SSL

FileZilla Konfiguration erforderlich:

  • FTP über SSL/TLS-Unterstützung aktiviert
  • Explicit FTP über TLS aktiviert
  • Plain unverschlüsselte FTP
  • SSL für Wurzeln

anmelden gezwungen nicht erlaubt, irgendeine Art von sslErrors Signalen würde ich zumindest erwarten, da Benutzer/pw in Ordnung ist und SSL nicht, aber ich bin immer nur authenticationRequired Signale .

Danke für Ihre Hilfe!

+0

Haben Sie QNetworkAccessManager überprüft? –

+0

@Frank Ihnen sehr für Ihren Hinweis frank danken, sehen – atamanroman

+0

meine aktualisierte Frage Was ist Ihre SSL/TLS-Konfiguration in FileZilla? –

Antwort

4

Leider gibt es keine Standardlösung für FTPS in Qt.

  • QFtp implementiert viele FTP-Befehle aber keine Verschlüsselung unterstützt.
  • unterstützt nur grundlegende FTP-Funktionen (Datei Download/Upload) und unterstützt nicht Verschlüsselung im Falle von ftp, entweder. Es ist erwähnenswert es unterstützt Verschlüsselung für HTTP, das ist das Protokoll, das es hauptsächlich für entwickelt wurde.
  • QSslSocket implementiert SSL aber keine spezifische Protokoll wie FTP oder HTTP

oben genannten Informationen unter Berücksichtigung einer Idee in den Sinn kommt QFtp mit QSslSocket zu mischen verschlüsselten FTP zu erhalten. Das Problem ist QFtp Klasse hat keine Methode, die es ermöglichen würde, QFtp verwenden Benutzer bereitgestellten Socket. Im Vergleich QHttp hat eine solche Methode - int QHttp::setSocket(QTcpSocket * socket)

Bottom-Line; Laut Thiago Macieira (Designer von QNetworkAccessManager) ist der Weg zu gehen FTP-Protokoll mit QSslSocket zu implementieren.

+0

Sie besser thiago sagen, das 4.8 für Qt zu implementieren;) – ismail

+0

Thank you very much! Ihre Antwort bestätigt absolut, was ich bisher herausgefunden habe. Ich mag die Idee der FTP-Implementierung nicht sehr, daher werden wir QFtp oder QNetworkAccessManager SSL-fähig machen oder die chilkats FTP2-Bibliothek kaufen. Jemand sollte dieses FTPS-Problem in den Qt-Handbüchern erwähnen - QNetworkAccessManagers FTP- und SSL-Unterstützung impliziert FTPS-Unterstützung. – atamanroman

Verwandte Themen