Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Projekte ::  Projektidee (2-3 Tage Aufwand) gesucht  
Gehen Sie zu Seite 1, 2, 3, 4  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
314159265358979
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4621
Beitrag 314159265358979 Mitglied 20:43:11 18.12.2011   Titel:   Projektidee (2-3 Tage Aufwand) gesucht            Zitieren

Hallöle,

Die Weihnachtsferien kommen näher und PI möchte in den Ferien irgendwas programmieren, leider hat er aber keine Ideen. Das Projekt sollte innerhalb von 2-3 Tagen umsetzbar sein, da PI spätestens dann die Motivation verliert. Es soll irgendwas mit Netzwerkprogrammierung und ohne GUI sein. Hat jemand Vorschläge?

Grüße,
PI
volkard
Moderator

Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 24356
Beitrag volkard Moderator 21:21:21 18.12.2011   Titel:   Re: Projektidee (2-3 Tage Aufwand) gesucht            Zitieren

Ein FTP-Uploader für Homepages.
Gesteuert durch die Datei ftpupper.ini im aktuellen Verzeichnis.
Code:
host: ftp.example.com //Die Adresse des Servers
dir: html //Unterverzeichnis, so alles rein soll, kann weggelassen werden
login: volkard
password: 1234
threads: 5 //Anzahl der parallelen Verbindungen, kann weggelassen werden
Code:
host: ftp.example.com //Die Adresse des Servers
dir: html //Unterverzeichnis, so alles rein soll, kann weggelassen werden
login: volkard
password: 1234
threads: 5 //Anzahl der parallelen Verbindungen, kann weggelassen werden
Code:
host: ftp.example.com //Die Adresse des Servers
dir: html //Unterverzeichnis, so alles rein soll, kann weggelassen werden
login: volkard
password: 1234
threads: 5 //Anzahl der parallelen Verbindungen, kann weggelassen werden

Das war alles.
Im Verzeichnis, wo die ini liegt, gibt es zwei Unterverzeichnisse:
out //Hier liegt die Homepage, kann zum Beispiel Ziel von Frontpage sein
//oder vorher durch meine Batch mit robocopy gefüllt werden oder
//Hardlink sein
mirror //Hier liegt eine Kopie dessen, was auf dem Server ist

Der Server wird nicht ausgelesen. Zum Start macht man mal mirror leer und den Server leer. Ab dann uploadet man nur noch mit dem Programm.
Es vergleicht mirror und out und alles, was gemacht werden muß, um mirror anzupassen, wird gleichzeitig auf dem Server und gleich drauf im mirror-Verzeichnis gemacht.
Das heißt, Dateien hochschicken, gegebenenfalls vorher nötige Verzeichnisse machen, gegebenenfalls vorher Dateien löschen, die so hießen wie ein zu erstellendes Verzeichnis. Das ist ein wenig tricky.

Problem: Normale Uploader sind schwer in scripts einzubinden, man muß immer rumklicken und das nervt.
Problem: Normale Uploader machen nur eine Verbindung, parallel hat man aber locker doppelten Speed. Wenn nicht mehr. Weil ftp immer eine Datei auf dem Steuerkanal beschreibt. Dann auf dem Datenkanal eine Verbindung aufmacht mit vielen Hin-Und-Herpaketen. Und wieder zumacht. In der ganzen Zeit langweit sich das Netzwerkkabel.

Für optimal frühes Fertigsein, nach Möglichkeit die größen Dateien zuerst uploaden. Damit später die Kleinen kommen und die Threads sich so arrangieren können, daß sie ungefähr gleichzeitig fertig sind.

Durch Multithreading und dadurch, daß man nicht Planen kann, wer wie lange brauchen wird, also ab wann zum Beispiel ein Verzeichnis erstellt ist, sodaß dort Dateien oder weitere Verzeichnisse gemacht werden können, muß wohl irgendwie ein Netzwerk der Aufgaben mit Vorbedingungen im Ram erzeugt werden, das dann abgearbeitet wird.

Kann aber 14 Tage dauern statt 2-3. :xmas1:

_________________
http://www.venganza.info/
plonk fürs Forum v1.02


Zuletzt bearbeitet von volkard am 21:24:42 18.12.2011, insgesamt 1-mal bearbeitet
314159265358979
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4621
Beitrag 314159265358979 Mitglied 21:52:13 18.12.2011   Titel:              Zitieren

Täusche ich mich, oder stand da vorhin "für meine Homepage"? ;)
CCodex
Mitglied

Benutzerprofil
Anmeldungsdatum: 29.05.2010
Beiträge: 198
Beitrag CCodex Mitglied 21:52:37 18.12.2011   Titel:              Zitieren

Ein kleiner Chat mit einem Masterserver.
Der Masterserver soll eine kleine Datenbank enthalten mit den Usern die Online sind.
Die kleine Datenbank sollte so aussehen:
Code:
Username=IP
Username2=IP2
Code:
Username=IP
Username2=IP2
Code:
Username=IP
Username2=IP2

Das sollte recht einfach zu parsen sein.

Der Client soll alle User anzeigen können.
Über eine eingabe "chat username" kann man mit einem User chatten können dann.


PS: Du kannst den Chat so realisieren wie du möchtest das sind nur ein paar Vorschläge wie man es machen könnte.
314159265358979
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4621
Beitrag 314159265358979 Mitglied 09:12:12 19.12.2011   Titel:              Zitieren

@volkard: Das mit den Verzeichnissen und den Absatz danach habe ich leider nicht verstanden. Könntest du mir das nochmal erklären?
Christoph
Moderator

Benutzerprofil
Anmeldungsdatum: 30.04.2001
Beiträge: 5711
Beitrag Christoph Moderator 12:53:19 19.12.2011   Titel:              Zitieren

Als ich "FTP" gelesen hab, hab ich erstmal geprüft, ob dieser Thread wirklich von 2011 ist. ;)

Im Ernst, ich hatte nicht erwartet, dass es immer noch Webseiten gibt, die per FTP hochgeladen werden. Ich dachte, dieses Protokoll wäre endlich mal verschwunden.

Ich nehm zum Hochladen von Webseiten am liebsten rsync oder git. Viel effizienter dürfte kaum möglich sein, außer die Verbindung wird gedrosselt, sodass mehrere parallele Verbindungen schneller sind. Aber bei rsync und git ist normalerweise der upstream konstant zu 100% ausgelastet.

Aber hier geht es ja um Hobby-Projekte, da wär ein multi-threaded FTP-Upload-Tool bestimmt ganz lehrreich. Und wenn es nur zeigt, wie man ein Protokoll nicht entwerfen sollte.

_________________
Wenn Word für Längeres geeignet wäre, würde es nicht Word, sondern Sentence, Page oder Article heißen.
/rant/
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.10.2008
Beiträge: 1552
Beitrag /rant/ Mitglied 14:21:28 19.12.2011   Titel:              Zitieren

Christoph schrieb:
Im Ernst, ich hatte nicht erwartet, dass es immer noch Webseiten gibt, die per FTP hochgeladen werden. Ich dachte, dieses Protokoll wäre endlich mal verschwunden.
Ich sehe hier Websites, die auf einem Windows Server 2000 gehosted sind. Und dort ist FTP das einzige, was vernünftig funktioniert. Da kannst du noch lange warten, bis dieses Protokol verschwindet ;)

_________________
MCPD, MCTS and more! | "It's 7:05am. I have not slept." | www.google.com
volkard
Moderator

Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 24356
Beitrag volkard Moderator 15:10:48 19.12.2011   Titel:              Zitieren

Christoph schrieb:
Als ich "FTP" gelesen hab, hab ich erstmal geprüft, ob dieser Thread wirklich von 2011 ist. ;)

Realitätscheck: www.1und1.de

_________________
http://www.venganza.info/
plonk fürs Forum v1.02
this->that
Mitglied

Benutzerprofil
Anmeldungsdatum: 21.06.2004
Beiträge: 3663
Beitrag this->that Mitglied 18:32:56 19.12.2011   Titel:              Zitieren

Christoph schrieb:
Im Ernst, ich hatte nicht erwartet, dass es immer noch Webseiten gibt, die per FTP hochgeladen werden.

Ist es irgendwie schick, wenn man sich absichtlich realitaetsfern gibt? :confused:

_________________
Momentanes Lieblingslied:)
volkard
Moderator

Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 24356
Beitrag volkard Moderator 19:12:58 19.12.2011   Titel:              Zitieren

314159265358979 schrieb:
@volkard: Das mit den Verzeichnissen und den Absatz danach habe ich leider nicht verstanden. Könntest du mir das nochmal erklären?

Du hast auf dem Server
foo/
bar
foo/datei1
foo/datei2

Du hast lokal
foo
bar/
bar/datei1

Also um bar/ anzulegen muß erst bar weg. Dann kann man bar/datei hochladen.
Also Reigenfolge "del bar" "mkdir bar" "put bar/datei1"
Und um foo hochzuladen muß erst foo/ weg und dazu müssen erst foo/datei1 und foo/datei2 weg.
Wobei aber egal ist, ob zuerst foo/datei1 oder foo/datei2 gelöscht wird. Nur muß klar sein, daß wenn ein Thread sich den Auftrag "del foo/datei1" holt, ihn sich kein anderer mehr holt. Also am besten irgendwie die Aufträge in einen gemeinsamen Container stecken, wo sich jeder was abholen kann.

Nochmal.

Du hast auf dem Server
foo/
foo/datei1
foo/datei2
bar

Du hast lokal
foo
bar/
bar/datei1

"put foo" wartet auf "rmdir foo"
"mkdir bar" wartet auf "del bar"
"rmdir foo" wartet auf "del foo/datei1"
"rmdir foo" wartet auf "del foo/datei2"
"put bar/datei1" wartet auf "mkdir bar"

Also bei Programmstart können die Jobs "del foo/datei1" und "del foo/datei2" und "del bar" sofort starten. Je nachdem, wer dann zuerst fertig ist, kann's mit weiteren Jobs weitergehen.

Bei parallelen Jobs sollte der die höchste Priorität haben, der am meisten Folgeaktionen freischaltet, damit möglichst alle 5 Threads immer was zu tun haben werden.
Bei parallelen put-Jobs sollte die größte Datei die höchste Priorität haben, damit nicht am Ende vier fertig sind und der fünfte noch an einer 100MB-Datei ackert.

_________________
http://www.venganza.info/
plonk fürs Forum v1.02
C/C++ Forum :: Projekte ::  Projektidee (2-3 Tage Aufwand) gesucht  
Gehen Sie zu Seite 1, 2, 3, 4  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.