tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
1173
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    radazong radazong ist offline Mitglied Silber
    Registriert seit
    Aug 2007
    Beiträge
    84
    Hallo Community,

    Ich habe folgendes Problem und komme allein absolut nicht weiter :

    Undzwar möchte ich mit meinem Programm eine Verbindung zu einem FTP-Server aufbauen, und eine dort hinterlegte Statusdatei abfragen. Die FTP-Verbindung zum Server wird definitiv aufgebaut, was ich daran gesehen habe, dass der entsprechende Benutzer angemeldet war. Jedoch kann ich die Datei weder mit FtpGetFile() runterladen, noch mit FtpOpenFile()&InternetReadFile() direkt lesen.

    In dem FTP-Verzeichnis befindet sich nur diese eine Datei. Keine Unterverzeichnisse, etc. Der Server ist ein Proftpd-Server, der Zugriff erfolgt über einen Wind**f-Rechner.

    Hier mein Sourcecode für den FTP-Zugriff:

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    int ConnectionStatus(TCHAR* server,int port)
    {
        HINTERNET hInternet,hFtp,hFtpRead,hFtpOpen;
        WIN32_FIND_DATA wfd={0};
        TCHAR Buffer[100]={0};
     
        hInternet=InternetOpen(L"ftp-client",INTERNET_OPEN_TYPE_PRECONFIG,0,0,INTERNET_FLAG_ASYNC);
        if(!hInternet)
            return INTERNET_FAULT;
     
        hFtp=InternetConnect(hInternet,server,port,user,password,INTERNET_SERVICE_FTP,0,0);
        if(!hFtp)
        {
            InternetCloseHandle(hInternet);
            return SERVER_FAULT;
        }
     
        if(FALSE==FtpGetFile(hFtp,L"status.txt",L"c:/windows/temp/status.txt",TRUE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_UNKNOWN,0))
        MessageBox(0,L"Fehler",L"Status",MB_OK);
        
     
        InternetCloseHandle(hFtp);
        InternetCloseHandle(hInternet);
     
    return NOT_IN_USE;
     
    }

    Ich hoffe, irgendjemand kann mir dabei helfen. Habe das Gefühl, das es nur noch ein winziges Detail zum Erfolg ist .

    Greetz,
    RadAZonG
     

  2. #2
    Anfänger92 Anfänger92 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Wesel (NRW)
    Beiträge
    217
    Hmm,

    bin mir nicht sicher aber geht "/" ich benutze immer "\\".

    Der Rest sieht richtig aus.

    Gruß
    Anfänger.

    Edit:
    Außerdem würde ich gucken ob der Ordner exsistiert und falls du Vista benutzt solltest du das ganze in nem anderen Verzeichnis (z.B. Desktop) speichern oder als Administrator ausführen.
    Geändert von Anfänger92 (09.08.09 um 20:07 Uhr)
     
    Besucht meine Seite

    War mein Beitrag hilfreich? Dann dankt mir doch einfach ;)

  3. #3
    radazong radazong ist offline Mitglied Silber
    Registriert seit
    Aug 2007
    Beiträge
    84
    Hi,

    Also, zumindest bei Dateioperationen funktioniert '/' bei mir. '\\' brachte leider auch keine Besserung. Der Temp Ordner existiert, in dem sind auch sämtliche Configs der Anwendung gespeichert.
    Auch ein Ausführen als Administrator brachte leider nichts. System ist übrigens Vista.
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Anstatt nur wild rumzuraten und irgendwie trail-and-error zu probieren, würde ich ja mal die Fehlercodes untersuchen was denn evtl. der Grund für das Fehlschlagen der Funktionsaufrufe ist.

    Gruß
    radazong bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    radazong radazong ist offline Mitglied Silber
    Registriert seit
    Aug 2007
    Beiträge
    84
    Hallo,
    da hast du natürlich recht. Nachdem ich mit dem Fehlercode von GetLastError() nicht soviel anfangen konnte, habe ich mit der Funktion InternetGetLastResponseInfo() mehrere unbekannte COMMANDS angezeigt bekommen. Dadurch bin ich mal auf die Idee gekommen, das ganze als passive Verbindung zu starten - und, oh Wunder, es funktionierte endlich.

    hFtp=InternetConnect(hInternet,server,port,user,password,INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,0);

    Manchmal braucht man eben ein paar Denkanstöße um die Zahnräder wieder zum Drehen zu bringen . Ich Danke für die Antworten, und den Tipp der mich letztlich zum Erfolg geführt hat.

    Gruß,
    RadAzonG
     

Ähnliche Themen

  1. [AJAX] Funktion funktioniert, wird jedoch nicht aufgerufen
    Von Milliongame im Forum Javascript & Ajax
    Antworten: 7
    Letzter Beitrag: 27.01.09, 19:28
  2. Antworten: 11
    Letzter Beitrag: 27.01.09, 16:48
  3. Ermitteln, wie lange DFÜ Verbindung besteht
    Von DarthShader im Forum Coders Talk
    Antworten: 2
    Letzter Beitrag: 26.09.07, 14:18
  4. Antworten: 0
    Letzter Beitrag: 15.07.07, 06:46
  5. [MySql] Sortierung funktioniert lokal - jedoch nicht auf dem Server
    Von molotroc im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 31.12.04, 11:40