mikrocontroller.net

Forum: PC-Programmierung verbindung zu ftp herstellen


Autor: francois (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: francois (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: C beginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

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

Was magst Du mit diesem Satz meinen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: C beginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: C beginner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.