Winsocket Problemchen....
-
Hi,
ich versuche grad ne Verbindung zu nem FTP Server aufzubauen, klappt auch, nur wenn ich mich einloggen will, dann passiert rein gar nichts.Also ich seh an meinem FTP Server, wer sich inloggt und durch das Programm,meldet sich halt niemand an...
hier mal der source#include <stdio.h> #include <winsock.h> int startWinsock() { WSAData wsa; return WSAStartup(MAKEWORD(2,0),&wsa); } int main() { long rc; SOCKET s; SOCKADDR_IN addr_in; char username[] = "user user\n\r"; char pwd[] = "pass user\n\r"; rc = startWinsock(); if(rc!=0) { printf("Fehler"); return 1; } else { printf("Erfolgreich gestartet\n"); } s = socket(AF_INET,SOCK_STREAM,0); if(s==INVALID_SOCKET) { printf("Fehler beim starten"); return 1; } else { printf("Socket erstellt\n"); } memset(&addr_in,0,sizeof(SOCKADDR_IN)); addr_in.sin_family = AF_INET; addr_in.sin_port = htons(21); addr_in.sin_addr.s_addr = inet_addr("127.0.0.1"); if(rc==SOCKET_ERROR) { printf("Fehler\n"); } else { printf("Verbunden\n"); } rc=send(s,username,strlen(username),0); rc=send(s,pwd,strlen(username),0); return 0; }
EditBySideWinder: Schön das du die Code-Tags benützt :). Aber für C/C++-Code gibt es darunter einen anderen (jetzt blauen) Button, damit wird das Synthax-Highlightning angedreht - sieht gleich viel besser aus ;).
[ Dieser Beitrag wurde am 21.12.2002 um 11:05 Uhr von SideWinder editiert. ]
-
is doch ganz klar, warum das nicht geht. wirf mal nen genaueren blick in die rfc. meines wissens kannst du nicht 2x hintereinander senden, sonder musst du die antwort vom server erwarten.
ftp session läuft glaub ich ca so ab:
C -> S connect
S: "blabla ftp ready oder so"
C: "user user"
S: "OK" // da sind immer irgendwelche ziffern, musst in rfc nachschauen
C: "pass user"
S: ok ...die genaue abfolge siehe eben ftp rfc. im code selber is glaub ich kein fehler
-
hmm ich hab das jetzt mal nach längerer zeit mal probiert, aber es klappt nicht.
rc=recv(s,buf,256,0); rc=send(s,username,strlen(username),0); rc=recv(s,buf,256,0); rc=send(s,pwd,strlen(pwd),0); rc=recv(s,buf,256,0);
hier is des zum senden und empfangen von den Antworten vom Server
-
buf is aber schon korrekt initialisiert oder?
studier mal die ftp-rfc das is ein MUSS wenn du irgenwas mit ftp machen willst