FTP problem :(



  • Hi,

    ich will mich etwas mit FTP auseinandersetzen, doch bei FtpSetCurrentDirectory geht einfahc nichts mehr 😞

    Verbinden tut er, Connecten ebenfalls aber ich komme nicht auf den Root-Ordner 😞

    #include <windows.h> 
    #include <wininet.h> 
    #include <iostream> 
    
    #pragma comment(lib, "wininet.lib")
    
    int main (void) 
    { 
        // INTERNET CONNECTION ÖFFNEN! ########################
        HINTERNET connection = NULL;
    
        connection = InternetOpen ("Anwendungsname", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_ASYNC);
    
        if (connection != NULL)
            std::cout << "Verbindung hergestellt" << std::endl;
        else 
            std::cout << "Verbindung konnte nicht hergestellt werden!" << std::endl;
    
        // FTP CONNECTION ÖFFNEN! #############################
        HINTERNET ftp = NULL;
    
        ftp = InternetConnect (connection, "xxx", 21, "xxx", "xxx", 1, 0, 0);
    
        if (ftp != NULL)
            std::cout << "FTP-Verbindung hergestellt" << std::endl;
        else 
            std::cout << "FTP-Verbindung konnte nicht hergestellt werden!" << std::endl;
    
        // FTP kram
        if (FtpSetCurrentDirectory (connection, "/"))
            std::cout << "FTP-Ordner gesetzt" << std::endl;
        else 
            std::cout << "FTP-Ordner konnte nicht gesetzt werden!" << std::endl;
    
        return 0; 
    }
    

    Zugangsdaten wurden natürlich geändert!

    Weiß jemand weiter?



  • sollte es nicht ftp sein

    FtpSetCurrentDirectory(ftp, "/");
    


  • hab das connection durch ftp ersetzt, es kommt einfach nix 😞





  • char buffer[512];
        DWORD xxx = 512;
        InternetGetLastResponseInfo (NULL, buffer, &xxx);
        std::cout << buffer << std::endl;
    

    spuckt nix aus 😞



  • Hab jetzt mal diese Funktion aus der MSDN dahinter aufgerufen:

    void ErrorExit(LPTSTR lpszFunction) 
    { 
        TCHAR szBuf[80]; 
        LPVOID lpMsgBuf;
        DWORD dw = GetLastError(); 
    
        FormatMessage(
            FORMAT_MESSAGE_ALLOCATE_BUFFER | 
            FORMAT_MESSAGE_FROM_SYSTEM,
            NULL,
            dw,
            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
            (LPTSTR) &lpMsgBuf,
            0, NULL );
    
        wsprintf(szBuf, 
            "%s failed with error %d: %s", 
            lpszFunction, dw, lpMsgBuf); 
    
        MessageBox(NULL, szBuf, "Error", MB_OK); 
    
        LocalFree(lpMsgBuf);
        ExitProcess(dw); 
    }
    

    Der sagt mir
    "997: Überlappender E/A-Vorgang wird verarbeitet"?????



  • Probier mal anstelle von INTERNET_FLAG_ASYNC den Wert 0


Anmelden zum Antworten