AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Denkanstoß für kleines Projekt
Thema durchsuchen
Ansicht
Themen-Optionen

Denkanstoß für kleines Projekt

Ein Thema von ByTheTime · begonnen am 13. Jan 2013 · letzter Beitrag vom 15. Jan 2013
Antwort Antwort
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

Denkanstoß für kleines Projekt

  Alt 13. Jan 2013, 16:56
Weiß garnicht ob das hier reinpasst, hat aber was mit Netzwerk zu tun
Ich möchte eine Art kleines FileSharing Netzwerk programmieren (über Sinn und Unsinn möchte ich hier jetzt nicht diskutieren). Ich würde das ganze gerne mit 5-10 Freunden ausprobieren. Das ganze soll ja kostenlos sein (also keine Kosten für den Anwender und für mich), daher fallen so Ideen wie Server mieten schonmal weg. DEn bei 5-10 Leuten fällt dementsprechend viel Traffic an, mit dem meine 6000er Leitung nciht mithält Deshalb habe ich mir überlegt das ganze so Peer-To-Peer Mäßig zu machen. Jetzt steh ich aber vor ein paar Problemen:
1. Könnte man dafür auch FTP benutzen? Zur Datenübertragung bringt es ja genug mit und soweit ich weiß kann man auch eigene Kommandos definieren und verarbeiten. Oder doch lieber Sockets und ein eigenes Protokoll bzw. die TCP Indys. Hier ist das Problem, das der Normalverbraucher große Augen mach, wenn mann ihm sagt, das er bitte den Port 62195 an seinem Router weiterleiten soll Hier ist ja FTP im Vorteil und auch UDP bittet sich an.

2. Es geht darum eine Art Community zu bilden die jederzeit erreichbar ist ohne Server. Ich könnte zumindesten meinen Heim-PC als MasterServer nutzen, der die IP-Adressen für das Peer-To-Peer bereitstellt (bei dem sich halt die einzelnen Programme immer melden und ihr IP übergeben). Ich könnte mir vorstellen das der "Client" (ich nenne ihn mal so, auch wenn es ja bei P2P keiner ist) von jeder Datei die man freigeben möchte einen MD5-Hash erstellt und dann eine Liste an den Masterserver übermittelt. Der Masterserver fast dann zusammen, welche Dateien auf welchem Rechner liegen (um Dopplungen in der Liste zu vermeiden). Dann kann man sich eine Datei von einer Person runterladen oder vllt. sogar von mehreren. Das wäre dann ja ziemlich Torrent ähnlich.

Hat jemand schonmal etwas ähnliches gemacht? Oder vllt. hat auch einer eine Idee was das angeht.

Danke,
Lukas
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Denkanstoß für kleines Projekt

  Alt 13. Jan 2013, 20:55
Also ich denke es fehlt Dir an Erfahrung eine Peer-2-Peer Software zu programmieren.
Nix für ungut.

Mein Vorschlag:
richte ein privates Bittorrent Netzwerk ein.
Dazu benötigst du einen Tracker sowie einen Webserver zu Verteilung der Torrent-Dateien.
Kleine Übersicht über Tracker Software: http://en.wikipedia.org/wiki/Compari...acker_software

Damit der Tracker über Internet erreichbar ist benötigt er einen DNS-Eintrag.
http://www.pcwelt.de/ratgeber/DynDNS...s-5680355.html
Der Webserver bietet einfach eine Liste aller Torrentdateien zum Download an.
Mit etwas programmieraufwand kann man den Teilnehmern auch ermöglichen neue Torrentdateien + Beschreibung hochzuladen.

Wenn du das System am Laufen hast, dann kannst du auch mal den Sourcecode von file sharing Software studieren
http://sourceforge.net/directory/com...ng/os:windows/

Geändert von sx2008 (13. Jan 2013 um 20:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Denkanstoß für kleines Projekt

  Alt 13. Jan 2013, 21:53
Ich hab mal etwas ähnliches gemacht. Ein kleines P2P Filesharing Tool mit Augenmerk auf das Fortsetzen eines Downloads bzw. Uploads.
Nun.. ein ehem. Kumpel hat mir dann die Idee und Arbeit zum größten Teil abgenommen..
Es ist ein sehr interessantes Thema. Ich würde es trotzdem nicht unterschätzen.

Ich würd das auch so ähnlich wie bei Torrent machen.
Vlt aber auch ein bisschen anders bzw. mit Eigenheiten.
- Über einen zentralen Knoten (MasterServer) wird geregelt, wer Online ist, welche Gruppen es gibt, wie man einer Gruppe beitritt usw usf.
Sofern man natürlich Gruppen haben will.
- Jedes Mitglied (Peer) gibt in der Gruppe bekannt, was es sharen will.
- Dateien werden in Chunks mit fixer Größe unterteilt (8-32 kb). Eine 1 mb Datei hätte bei einer Chunkgröße von 32 kb 32 Chunks.
diese werden per UDP geschickt.
- Ein Chunk enthält eine Prüfsumme, ChunkID, Name und Inhalt
- Jeder kann von jedem saugen; verschiedene Chunks können von verschiedenen Peers simultan runtergeladen werden.

Das sind so meine ersten Gedanken dazu.
Wichtig für solch ein Projekt ist es imho, dass man solide Programmierkenntnisse (speziell Netzwerkprogrammierung) hat.

Wenn ich mir deine Beiträge anschaue, dann zweifle ich daran.. =/
Über die Idee an sich können wir aber gerne weiterhin plaudern. Wie gesagt, ich find, es ist ein interessantes Thema.
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#4

AW: Denkanstoß für kleines Projekt

  Alt 14. Jan 2013, 22:37
Ja, das es da an Programmierfähigkeiten hapert kann ich mir schon vorstellen. Aber zumindestns die Grundzüge würde ich mir gerne erarbeiten. Vllt. bekomm ich es ja dann irgendwie gebacken, zumindestens in kleinem Umfang.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Denkanstoß für kleines Projekt

  Alt 15. Jan 2013, 07:24
Aber zumindestns die Grundzüge würde ich mir gerne erarbeiten
1.)
Grundvorraussetzung ist, dass dein Rechner aus dem Internet erreichbar ist!
Dazu muss die IP-Adresse (die sich spätestens nach 24 Std ändert) ermittelbar sein.
Dazu gibt es (freie) DNS-Dienste um von dem Rechnernamen auf die aktuelle IP-Adresse zu kommen.
Siehe Link in meinem 1. Posting.
2.)
Auf deinem Rechner muss ein Webserver laufen, damit man aus dem Internet zumindest eine Übersicht bekommt welche Dateien angeboten werden.
Installiere also einen Webserver (z.B. Apache) mit mindestens einer eigenen HTML-Seite.
3.)
Dein Router muss den Zugriff von Aussen (Internet) auf den Webserver mit Port 80 zulassen.
Stichwort NAT.
Du musst also deinen Router dazu "überreden" Datenpakete aus dem Internet mit Port 80 an deinen Rechner weiterzugeben.
Wie das genau geht, hängt von deinem Router ab.

Bevor du nicht die Schritte 1 bis 3 erfolgreich gemeistert hast, ist jede weitere Diskussion substanzlos.
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Denkanstoß für kleines Projekt

  Alt 15. Jan 2013, 07:59
hört sich nach: Wippien oder Hamachi an.
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Denkanstoß für kleines Projekt

  Alt 15. Jan 2013, 10:51
wenn im ersten Schritt darum geht Files mit TCP IP Server (INDY) zu übertragen um lokalen netzwerk indest Du unter http://sourceforge.net/projects/indy10clieservr/ entsprechende Demo Codes
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:48 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