PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C und FTP upload???



SUCHTI
11.04.2010, 08:04
Wie sende ich in C daten auf den FTP server???

Barbers
11.04.2010, 08:53
mit sockets^^
aber es gibt auch ne lib dafür
http://nbpfaus.net/~pfau/ftplib/

SUCHTI
11.04.2010, 09:12
naja, hatte es so versucht:

system("ftp beispiel.be.ohost.de\n");
system("userNAMe");
system("passwort");
system("put C:\DOKUME~1\%userprofile%\Eigene Dateien\Eigene Bilder\*.jpg");

wei mache ich es richtig??

Barbers
11.04.2010, 10:20
das ist ein totaler fail.
sobald system("ftp beispiel.be.ohost.de\n"); durch ist wird der ftp wieder geschlossen und zu kommst garnet erst zum username.
da kannste wirklich nur die ftplib versuchen, hat ja auch ne doku.

inout
11.04.2010, 10:30
oder wininet.h includen und folgende API-Aufrufe tätigen:
InternetOpen(), InternetConnect(), FtpPutFile(), InternetCloseHandle()

GregorSamsa
11.04.2010, 10:32
Selber das FTP-Protkoll implementieren.

Dann hast du Kontrolle über deinen Code...

Barbers
11.04.2010, 12:45
http://disses-blog.com/?p=11
ka ob dir das wirklich hilft XD

blackberry
11.04.2010, 12:56
Variante 1: Sockets und Protokoll selber implementieren
Variante 2: Libs benutzen
Variante 3: WinAPI Funktionen Benutzen
Variante 4: ftp Programm per popen() (ähnlich wie fopen) öffnen und Befehle reinsenden (entspricht ungefähr deiner system("...")-Lösung - nur eben funktionsfähig)

Nur4mon
11.04.2010, 13:03
Ich weiss ja nicht was du mit dem Programm machen willst, aber ich glaube Sockets und sind erzeugen keine Firewall meldung ;)

SUCHTI
11.04.2010, 13:47
Ich weiss ja nicht was du mit dem Programm machen willst, aber ich glaube Sockets und sind erzeugen keine Firewall meldung ;)
will ein Bilder stealer machen^^


Variante 1: Sockets und Protokoll selber implementieren
Variante 2: Libs benutzen
Variante 3: WinAPI Funktionen Benutzen
Variante 4: ftp Programm per popen() (ähnlich wie fopen) öffnen und Befehle reinsenden (entspricht ungefähr deiner system("...")-Lösung - nur eben funktionsfähig)

Variante 4 hört sich nett an, kannst mal ein beispiel Zeigen??

blackberry
11.04.2010, 14:00
#include <stdio.h>


int main(void)
{
FILE *prog;
char buffer[1024];

// popen gibt einen Zeiger auf eine FILE-Struktur zurück,
// wenn alles funktioniert. Im Fehlerfall gibt es einfach
// 0 zurück.
if (!(prog = popen("programm.exe parameter1 parameter2 ...", "r+b")))
{
// Programm nicht gefunden / nicht ausführbar / whatever
return 1;
}

// ab hier kann man "prog" wie ein ganz normales FILE Handle benutzen
// Funktionen wie fputs, fwrite, fread, fgets, fprintf, usw.
// stehen also zur Verfügung

fputs("Das ist ein Test", prog); // String senden
fread(buffer, 1, sizeof(buffer), prog); // Antwort auslesen
puts(buffer); // Antwort ausgeben

// hier pclose und NICHT fclose verwenden. Damit wird der Prozess des
// Programms beendet.
pclose(prog);
return 0;
}

SUCHTI
11.04.2010, 14:05
Vollquote des Vorposters entfernt -BlackBerry

Schlag mich wenn ich's nicht begreife, aber wie Lade ich damit was auf den FTP-server???

krypt0n
11.04.2010, 14:25
Schlag mich wenn ich's nicht begreife, aber wie Lade ich damit was auf den FTP-server???
Du scheinst keinen Plan von C zu haben, setzt uns irgend einen Code vor und verlangst dann, dass wir dir alles vorkauen und eine fertige Lösung hinschreiben. Mit den bereits gesagten Dingen (Winapi, ftplib etc.) wäre es für einen User, der nur ein bisschen Eigeninitiative zeigen würde kein Problem sich selber was zu basteln. Lern bitte erst einmal mit Google, MSDN und deiner Compilerdoku umzugehen, bevor du uns hier auf die Bäume treibst.

blackberry
11.04.2010, 14:33
Schlag mich wenn ich's nicht begreife, aber wie Lade ich damit was auf den FTP-server???

Du hast doch bereits dein system()-Zeug gepostet. Wenn das von den Befehlen funktionieren würde (ich habe noch nicht mit Microsofts ftp Client gearbeitet, also weiß ich das nicht), dann kannst du das anstatt mit system() über popen() machen, indem du ftp (das Programm) öffnest und die Befehle reinsendest und - wenn nötig - Antworten ausliest.

Einen fertigen Sourcecode bekommst du von mir auf keinen Fall und wenn du ständig nach einem fragst landet der Thread nach §1.4 (wir sind keine Privatlehrer) der Boardregeln einfach auf dem Müll.

Hier nochmal zur Errinnerung was du geschrieben hast:

system("ftp beispiel.be.ohost.de\n");
system("userNAMe");
system("passwort");
system("put C:\DOKUME~1\%userprofile%\Eigene Dateien\Eigene Bilder\*.jpg");

Nur4mon
14.04.2010, 21:45
Mit system() ist doch low, da gibt die Firewall auf jedenfall ne Warnung raus.