Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » FTP Socket Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.09.2006, 14:44 Uhr
~ftpuser
Gast


Hallo!

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


Code:
#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:

Zitat:

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:

Zitat:

230 User DarthVader logged in.



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


Danke schonmals für die Hilfe!
lg thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.09.2006, 15:57 Uhr
Tron



Hallo,

ohne Deinen Code groß gelesen zu haben sollte es so gehen.
Denn der FTP Replay 220 StarWars III besagt das der Rechner bereit ist für den Benutzer
wobei StarWars III der Rechnername sein sollte - Oder!? .

230 User DarthVader logged in - bedeutet das der User DarthVader bereits eingeloggt ist
und der FTP Server auf Kommandos wartet.

Gruß Tron
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.09.2006, 18:39 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


für "helo" solltest du imho bei 99% der server "500 HELO not understood" bekommen.

Ansonsten rückgabe von user und passwort abfragen:


Code:
USER DarthVader
331 Password required for DarthVader.


--
class God : public ChuckNorris { };

Dieser Post wurde am 03.09.2006 um 18:40 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: