AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Dateien von Win <-> Linux exklusiv schreiben/lesen
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien von Win <-> Linux exklusiv schreiben/lesen

Ein Thema von APP · begonnen am 20. Jun 2003 · letzter Beitrag vom 22. Jun 2003
Antwort Antwort
Seite 2 von 2     12   
tommie-lie
(Gast)

n/a Beiträge
 
#11
  Alt 22. Jun 2003, 11:15
So genau kenne ich das FTP-Protokoll auch nicht, aber AFAIK gibt es Fehler-Kommandos. Entweder heißen sie "ERROR", "ERR" oder so ähnlich. Damit könntest du zumindest schonmal die Fehler zurückgeben.
So, damit eingehende Verbindungen immer gleichzeitig ablaufen, solltest du für jede Anfrage einen neuen Thread machen. Wenn du die VCL mit dem TThread nimmst, ginge das mit einem array of TThread, bei der API mit einem array voller Thread-Handles.
Ich kenne die Indies auch nicht, daher gehe ich mal von einer Komponente TidFTPServer aus, die hoffentlich ein Event "OnIncomingRequest" hat. Da schaust du dann, was da angefordert wird (Retry, Stor, Put oder Get) und öffnest einen neuen Thread, um eben diese Datei vom Client zu übertragen, oder zum Client, je nachdem. Das kann mehrfach geschehen, da Threads läuft alles gleichzeitig.
So, bei jedem neu erstellten Thread, also jeder Verbindung, die zustande kommt, schreibst du in eine Liste den Dateinamen der aktuell übertragenden Datei. Wenn dann ein neuer Request kommt, guckst du, ob die angeforderte Datei bereits in dieser Liste steht, also bereits hochgeladen wird. Ist das der Fall, gibst du die Fehlermeldung aus à la "ERROR "This file is being uploaded by another client, please try later."" und wartest auf weitere Kommandos des Clients (z.B. das Hochladen einer anderen Datei).
Soweit zur Theorie. Für die Praxis musst du jemanden finden, der sich mit den Indies auskennt
Oder deren Handbuch lesen, falls vorhanden

FTP ist auf jeden Fall von vielen Leuten einsetzbar. Du brauchst ja nur zur richtigen Zeit die richtigen Fehlermeldungen schicken. Ein fertiges Protokoll, daß das macht, ist mir nicht bekannt, aber mit den Protokollen hab' ich's eh nicht so *g*
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#12
  Alt 22. Jun 2003, 14:53
Hallo tommie-lie,

danke für Deine ausführliche Beschreibung, ich werde gleich mal von der Theorie in die Praxis gehen und Deine Ideen aufgreifen...

p.s.
Zitat:
...Ein fertiges Protokoll, daß das macht, ist mir nicht bekannt, aber mit den Protokollen hab' ich's eh nicht so *g*...
...da habe ich als kleiner Maxi mir halt gedacht, das könnte so ähnlich
funken wie bei einem Dateisystem, wo man eine Datei exklusiv öffnen
kann, so daß kein anderer mehr zugreifen kann, bis die Datei wieder
geschlossen wurde.
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#13
  Alt 22. Jun 2003, 16:34
Zitat von APP:
da habe ich als kleiner Maxi mir halt gedacht, das könnte so ähnlich funken wie bei einem Dateisystem, wo man eine Datei exklusiv öffnen
kann, so daß kein anderer mehr zugreifen kann, bis die Datei wieder
geschlossen wurde.
Das Internet ist nunmal kein Dateisystem
Aber theoretisch geht sowas ja schon über die RSH (oder SSH, wenn verschlüsselt) vin Linux, da hast du nämlich schon deine Shell und könntest über diese ein Programm aufrufen. So flexibel ist Linux da ja.
Aber einfacher zu verstehen und mit jedem FTP-Client anzuwenden wäre sicherlich die FTP-Lösung, nicht jeder hat es so mit der RSH und dem Einirchten und Firewall deaktivieren usw...
Und ob eine RSH oder SSH für Windows-Server zur Verfügung steht, weiß ich auch schon wieder nicht...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz