Forum: PC-Programmierung verbindung zu ftp herstellen


von francois (Gast)


Lesenswert?

hello all!
ich versuche ein ftp client in [C](keine andere sprache bitte!)zu 
schreiben.Ich bin noch anfaenger bei netzwerkprogrammierung deswegen hab 
ich mir  bei http://www.c-worker.ch/ nachgeguckt.Meine frage jetzt wie 
kann ich auf dem ftp server zugreifen ,soll ich das per internet  oder 
per socket machen. kann ich mal  ein paar link haben in dem steht so ein 
paar beispiele für solche probleme.Für jede Hilfe bin ich sehr Dankbar.
mfg
fr.

von yalu (Gast)


Lesenswert?

Wenn du etwas lernen möchtest, kannst du auf Socket-Ebene anfangen.
Beispiele zur Socket-Programmierung gibt's zuhauf unter

  http://www.google.com/search?q=socket+example

Dann schaust du nach, wie das FT-Protokoll geht

  http://www.google.com/search?q=ftp+protocol

und programmierst es aus. Fertig.

Wenn du schneller zum Ergebnis kommen möchtest, saug die
cURL-Bibliothek

  http://curl.haxx.se/

Wenn's noch schneller gehen soll, schau die das ftplib-Modul oder das
urllib-Modul für Py...

ach nee, du wolltest ja unbedingt bei C bleiben ;-)

von Rolf Magnus (Gast)


Lesenswert?

> ich versuche ein ftp client in [C](keine andere sprache bitte!)zu
> schreiben.

Es gibt haufenweise fertige Bibliotheken, die den ftp-Zugriff für dich 
erledigen können. libcurl ist z.B. eine, die zusätzlich noch jede Menge 
andere Protokolle unterstützt. Siehe http://curl.haxx.se/libcurl/

> Meine frage jetzt wie kann ich auf dem ftp server zugreifen ,soll ich
> das per internet oder per socket machen.

Das Internet ist (mehr oder weniger) ein Netzwerk. Sockets sind ein 
Interface, über das man auf ein Netzwerk (z.B. das Internet, aber auch 
ein lokales Netz) zugreifen kann.

von francois (Gast)


Lesenswert?

hallo!
ich hab mir die libcurl biblio.heruntergeladen.Ich will jetzt fragen 
welche funktion kann ich fuer jede operation(ftp verbindung 
herstellen+datei aus server holen....) benutzen oder kann jemand so ein 
source code als beispiel hier posten.Ich danke euch im voraus.
MFG
fr.

von Karl H. (kbuchegg)


Lesenswert?

Hast du dir die Library schon mal angesehen?

In 10 Sekunden habe ich im Docs Verzeichnis ein
examples Verzeichnis entdeckt und dort wiederrum
ein paar Demoprogramme die zb. ftpget.c, ftpgetresp.c
ftpupload.c etc. heissen.

von C beginner (Gast)


Lesenswert?

hallo!
oh super Du hast mir richtig geholfen.Jetzt kann ich mit dem Server 
kommunizieren aber ich hab noch ein problem.Wie kann ich Remote 
file(also was  im server steht)nach filetyp(.txt,.exe.,.)prüfen.Ich 
weiss nicht ob es schon fertige funktionen in C gibt,die solche problem 
auflösen können.Für jede Hinweis oder Beispiel bin ich sehr Dankbar.
mfg
fr.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Wie kann ich Remote file(also was  im server steht)nach
> filetyp(.txt,.exe.,.)prüfen.

Was magst Du mit diesem Satz meinen?

von Karl H. (kbuchegg)


Lesenswert?

Rufus t. Firefly wrote:
>> Wie kann ich Remote file(also was  im server steht)nach
>> filetyp(.txt,.exe.,.)prüfen.
>
> Was magst Du mit diesem Satz meinen?

Gute Frage.
Ich denke, er meint er will
* vom FTP Server ein Directory holen
* Bei der Angabe des Dir Kommandos ein paar Wildcards verwenden.


Vielleicht wäre ein Blick in die RFC für FTP wirklich
nicht verkehrt. Oder aber einfach mal ein bischen mit
einem Commandline-FTP Client (*) spielen. Speziell das HELP
Kommando kann da weiterhelfen.
Und dann, wenn man weis, was ein typischer FTP CLient
so alles kann, dann kann man dann auch mal den Source
Code, den andere geschrieben haben, durchforsten und
nachsehen ob die Library das vielleicht schon kann, oder
wie man das implementieren könnte.

(*) Ich weiss schon: Command Line ist aus der Mode. Heute
muss man nicht mehr denken, sondern nur noch klicken.

von C beginner (Gast)


Lesenswert?

Hallo!
Das war richtig was Du verstanden hast (  Karl heinz )(get file from 
server oder move ftpfile vom externen Server  to local directory),Aber 
die hinweis was Du hier erlaütert hast kann ich nicht verstehen.Ich 
arbeite mit einem Libcurl biblio.(C MS visual C++)windows.Ich hab mir 
die Demos  und docs angeschaut  find ich nichts.Aber was ich gefunden 
habe ist: curl_easy_setopt(curl, CURLOPT_UPLOAD, TRUE) ;aber ich brauche 
function für entgegenrichtung Download.
Ich danke euch im voraus.
mfg
fr.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das scheint symptomatisch zu sein.

Versuche mal, Dein Problem in einer anderen Sprache zu formulieren, 
vielleicht gelingt es Dir dann, Dich verständlicher auszudrücken.

Was willst Du erreichen?
Erkläre das an einem Beispiel.

von C beginner (Gast)


Lesenswert?

hi!
Also was ich machen soll ist:
-1)verbindung zu Ftp aufbauen
-2)Datei of existenz prüfen
-3)ftp transfer(dateien vom externen server zum lokalen server)
-4)datei öffnen und bearbeiten
mein problem liegt bei dem 3 Punkt ich hoffe dass die frage deutlicher 
geworden ist.
mfg
fr.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dafür dient das ftp-Kommando GET.

"Datei auf Existenz prüfen" - sofern deren Name feststeht, kannst Du den 
Punkt übergehen, ein GET mit unbekanntem Dateinamen liefert einen 
entsprechenden Fehlercode, den Du nur noch auswerten musst. Die 
ftp-Fehlercodes sind, wie das gesamte Protokoll, in der entsprechenden 
rfc beschrieben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.