SimpleFileShare (WebServer)

    • Beta

    Es gibt 105 Antworten in diesem Thema. Der letzte Beitrag () ist von Quadsoft.de.vu.

      SimpleFileShare (WebServer)

      Hallo,

      das hier ist nur ein kleines Projekt von mir das vllt. für einige ganz nützlich sein könnte. Wer oft Dateien mit anderen austauscht, kennt das Problem: Es ist nervig, die Dateien erst auf (s)einen Webspace oder One-Click-Hoster hochladen zu müssen, den Link dem anderen zu schicken, der das ganze wieder downloaden muss... und über ICQ oder andere IM's senden ist langsam. Daher habe ich dieses kleine Programm geschrieben. Euer Gegenüber kann dann direkt von eurem PC herunterladen und ihr spart euch den langwierigen Upload. Der Link ist natürlich nur abrufbar solange das Programm offen ist und es benötigt Portfreigabe. Die Anwendung kann selbstverständlich mehrere Clients gleichzeitig bedienen. Zudem enthält die Anwendung einen Verzeichnisdienst, der Ordner auflisten kann.

      Screenshots

      GUI:







      Konsole:



      Die Anwendung basiert auf dem .NET Framework 2.

      Download

      GUI (ZIP, 472 Kb)

      Gruß

      Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „kevin89“ ()

      Die Progs im Showroom werden in letzter Zeit ja immer niveauvoller :D
      Sehr schöne Arbeit. 5* mal was innovatives!
      Vllt. solltest du dazu sagen, ob du TCP oder UDP nimmst. Ich denke mal ganz stark TCP.

      Schön wäre auch eine art TCP-netzwerk. Aber das geht leider nicht über das HTTPprotokoll ;)
      Von meinem iPhone gesendet

      nikeee13 schrieb:

      Vllt. solltest du dazu sagen, ob du TCP oder UDP nimmst. Ich denke mal ganz stark TCP.

      HTTP läuft immer über TCP.

      Gruß
      To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

      At some point in time, you recognize that knowing more does not necessarily make you more happy.
      Hi,

      danke ;)
      @ timie257: Die "..." stehen für den Pfad danach. Wenn du z.B. im Shared-Folder einen Unterordner "test" und darin eine Datei "bild.png" hast, wäre der Link "http://deineip:8000/test/bild.png".

      Ich habe allerdings gerade noch einige große Bugs entdeckt, die u.a. HTML-Header und Probleme beim Zugriff auf die richtige Datei bei unter einander verlinkten Dateien betrifft, werde das so schnell wie möglich fixen.

      LG
      Verbesserungsvorschlag: Die IP + Port in die Zwischenablage kopieren, abtippen ist doof ;)

      Gruß
      To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

      At some point in time, you recognize that knowing more does not necessarily make you more happy.
      Update:

      - Bug beim Senden des Headers behoben
      - Bug beim Ermitteln des Contenttypes behoben
      - Bug beim Weiterleiten von Requests in Unterordner behoben
      - Stabilität bei mehreren Clients verbessert
      - Customerrorpages implementiert
      - Log implementiert

      Download s.o. (jetzt 309 Kb)

      Edit: Alles gefixt.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „kevin89“ ()

      Chrisber schrieb:

      Verbesserungsvorschlag: Die IP + Port in die Zwischenablage kopieren, abtippen ist doof ;)

      Übersehen oder findest du die Idee nicht gut?

      Edit: Fehler...

      Brainfuck-Quellcode

      1. Unhandled Exception
      2. ---------------------------
      3. System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.IO.DirectoryNotFoundException: Ein Teil des Pfades "D:\...\Test\404\404.html" konnte nicht gefunden werden.
      4. bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
      5. usw...


      Gruß
      To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

      At some point in time, you recognize that knowing more does not necessarily make you more happy.

      Chrisber schrieb:



      Edit: Fehler...

      Brainfuck-Quellcode

      1. Unhandled Exception
      2. ---------------------------
      3. System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.IO.DirectoryNotFoundException: Ein Teil des Pfades "D:\...\Test\404\404.html" konnte nicht gefunden werden.
      4. bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
      5. usw...



      ist bei mir genauso
      Hi,

      @ Chrisber, Xenon, J-M: Gefixt. Sorry, der Fehler war mir nicht aufgefallen, weil der entsprechende Codeteil nur ausgeführt wird, wenn keine Errorpages vorhanden sind, was bei mir beim Testen immer der Fall war.

      @ Chrisber: Zu deinem Vorschlag: Ich hab das mit der IP erstmal ganz rausgenommen, werde das ganze aber wieder implementieren ;)

      @ Toby: Eigentlich ist eine Anwendung mit GUI bei einem Webserver gar nicht geeignet... zumal das das Ende der Kompatiblität unter Debian Lenny (unter Mono) usw. bedeuten würde. Aber naja, werde mal drüber nachdenken, eventuell eine zusätzliche GUI-Version bereitzustellen.

      LG

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kevin89“ ()

      Bin im Moment sehr zufrieden ;)

      Was noch sinnvoll/toll wäre:
      -starten mit Parametern ( -port 1337 -dir "C:\lo ol\ordner" oder so)
      -als Dienst?
      -wenn nicht als Dienst, dann ohne Window? (evtl. mit parameter -invis ;))
      -userinput? ála start/stop/changeport (on-the-fly-portwechsel)

      Bitte immer schön dran arbeiten :D
      Von meinem iPhone gesendet
      Also als Dienst & mit Parametern wäre schonmal cool, super wäre aber noch eine Überprüfung auf Viren, auch wenn das vllt. schwer zu realisieren ist.

      Vielleicht wird dein Programm ja ganz bekannt und alle Leute nutzen es und alles wird mit Dateien, die keiner braucht vollgemüllt :D

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „martinustreveri“ ()

      Hi,

      erstmal wurde die Verzeichnisauflistung verbessert (auch designtechnisch, an dieser Stelle dank an nikeee13):



      Zudem steht eine neue Version mit GUI in Aussicht, die im Tray laufen wird. Von da wird man die Möglichkeit haben, die Serverkonfiguration komfortabel anzupassen und (bis auf Änderungen beim Port) den Server nicht neustarten müssen, den Server schnell zu starten/stoppen und Links zu Dateien schnell zu kopieren. Unterstützung für Parameter wird vllt. in diese Version ebenfalls kommen.

      LG

      kevin89 schrieb:

      Hi,
      @ Toby: Eigentlich ist eine Anwendung mit GUI bei einem Webserver gar nicht geeignet... zumal das das Ende der Kompatiblität unter Debian Lenny (unter Mono) usw. bedeuten würde. Aber naja, werde mal drüber nachdenken, eventuell eine zusätzliche GUI-Version bereitzustellen.

      Mono kann aber WinForms und sofern du's lernen möchtest steht dir der Weg über GTK# offen.
      Mach dein Programm doch aber einfach zum (unsichtbaren) Daemon und lager' den interaktiven Teil aus in eine zusätzliche Anwendung, wie es bei den meisten Servern der Fall ist. Dann stört der eigentliche Server nicht und die Konsole ist nur offen, um den Server zu bedienen.