FTP Problem



  • Hallo!

    Habe ein kleines Problem und zwar, habe ich mir meinen FTP Server zusammengebastelt, der Code sieht so aus:

    #include <cstdlib>
    #include <iostream>
    #include <winsock.h>
    #include <winsock2.h>
    #include <windows.h>
    
    using namespace std;
    
    int gPort = 21;
    int error = 0;
    string msg = "USER DarthVader";
    string msp = "PASS starwarsrulez";
    string dir = "dir";
    string help = "help";
    string helo = "helo";
    
    int main(int)
    {
           SOCKET lhSocket;
           SOCKADDR_IN lSockAddr;
           WSADATA wsaData;
           int lConnect;
           int lLength;
           char lData[]="SendData";
           if(WSAStartup(MAKEWORD(2,0),&wsaData) != 0)
           {
                cout<<"Socket Initialization Error. Program aborted\n";
                cin>>error;
                return 0;
            }
           lhSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
           if(lhSocket == INVALID_SOCKET)
           {
                cout<<"Invalid Socket "<<GetLastError()<<". Program Aborted\n"<<endl;
                cin>>error;
            }
           memset(&lSockAddr,0, sizeof(lSockAddr));
           lSockAddr.sin_family = AF_INET;
           lSockAddr.sin_port = htons(gPort);
           lSockAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
           lConnect = connect(lhSocket,(SOCKADDR *)&lSockAddr,sizeof(SOCKADDR_IN));
           if(lConnect != 0)
           {
                 cout<<"Connect Error. Program aborted\n";
                 cin>>error;
                 return 0;
           }
    
          //Sag dem Server hallo weil wir so nett sind :-)
          send(lhSocket, helo.c_str(),strlen(helo.c_str()),0);
          Sleep(2000);
    
          char temp[512];
          int bytes = 0;
          while (bytes == 0)
          {
                 bytes = recv(lhSocket,temp,sizeof(temp)-1,0);
                 temp[bytes] = '\0';
                 cout<<temp;   
          }
          Sleep(1000);
          send(lhSocket, msg.c_str(),strlen(msg.c_str()),0);
          Sleep(1000);
          send(lhSocket, msp.c_str(),strlen(msp.c_str()),0);
    
          int bytes2;
          while (true)
          {
                 bytes2 = recv(lhSocket,temp,sizeof(temp)-1,0);
                 temp[bytes] = '\0';
                 cout<<temp;
          }
          cin>>bytes;
    
           closesocket(lhSocket);
           return 0;
    
    }
    

    Habe einen FTP Server local laufen und Benutzername und Passwort stimmen eben mit den obigen überein.
    Wenn ich das Programm ausführe steht aber nur:

    220 StarWars III

    Das bedeutet doch, dass ich nicht beim Server eingeloggt bin, denn wenn ich es mit Telnet versuche bekomme ich, wenn ich eingeloggt bin folgende Meldung:

    230 User DarthVader logged in.

    Wo liegt mein Fehler?
    Was mache ich, wo wie falsch?

    Danke schonmals für die Hilfe!
    lg thomas



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Doppelpost ?
    Weiter gehts hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-158222.html

    (btw. du hast diesmal "FTP Server" mit "FTP Client" vertauscht ;D)


Anmelden zum Antworten