Ftp server selbst programmieren



  • Hallo!
    Ich habe mir vorgenommen einen FTP Server zu programmieren! Nun ich wollte wissen ob ich Funktionen wie FTPSendfile und so benutzen kann, und wenn nicht, wie würde ich zu einem FTP Clienten eine Datei senden? Das mit den Directories is ja leicht....aber das versenden von Dateien? 😕

    Kevin



  • das ist eine delphi funktion glaub ich..

    einen socket musst du programmieren, und dann auf port 21 lauschen lassen .. und die dateien einfach auslesen und rübersenden.
    drüben dann wieder auffangen.

    als object wäre es am günstigsten.



  • ja das einfach auslesen und rübersenden is leicht gesagt....auslesen is ja keen prob...wenn ein großes BYTE hab in dem die Anwendung steht, wie sende ich die dann rüber?

    Kevin



  • du musst einen server proggen, wie gesagt, server ist server, auch wenn er auf port 21 lauscht..

    hier ein socket tutorial
    http://www.c-worker.ch/tuts/udp.html



  • Ja das mit dem Socket is alles kein Problem....angenommen Client und Server sind verbunden wie verschicke ich dann auf Befehl GET oda RETR file.txt die Datei file.txt?

    Kevin



  • steht da auch

    *5. Daten austauschen mit sendto und recvfrom

    Wie oben bereits erwähnt benutzten wir für den Datentransfer bei UDP sendto() und recvfrom(). Die beiden Funktionen werden hier kurz vorgestellt.

    sendto() sendet die Daten an einen bestimmen Host, diesen müssen wir mit der bereits bekannten SOCKADDR_IN Struktur angeben. Die Funktionsdefinition:

    int sendto ( SOCKET s, const char FAR * buf, int len, int flags, const struct sockaddr FAR * to, int tolen );
    -s: Socket über den wir die Daten senden wollen
    -buf: Pointer auf einen Buffer der die zu sendenden Daten enthält
    -len: Wieviele Zeichen von buf gesendet werden sollen
    -flags: benötigen wir nicht, auf 0 setzten
    -to: in unserem Falle ein Pointer auf eine SOCKADDR_IN Struktur die Informationen über den Zielrechner enthält
    -tolen: länge von to, in userem Fall sizeof(SOCKADDR_IN)



  • brauchst wohl zu der netzwerkapi noch nen "eingabe"-parser, der auf befehle überprüft (z.b. GET) und ensprechend ausführt.



  • Hi!
    Habe ich das jetzt also so richtig verstanden: Ich schreibe einen Server, der lauscht auf Port 21. Aber so wie Telnet ist das doch dann? Einen Multiuser TelNet-Server habe ich nämlich schon mal hingekriegt, muss ich also dann einfach nur gucken was der Client für Befehle sendet und dann darauf reagieren oder wie läuft das?
    Woher bekommt man eine Liste an FTP-Kommandos, die sind ja dann standardisiert nehme ich mal an...

    Danke&Gruss,
    code_pilot





  • thx also liege ich richtig, es ist wie Telnet? Is ja echt easy 🙂 ...

    code_pilot


Anmelden zum Antworten