Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Lan Manager Download (https://www.delphipraxis.net/110734-lan-manager-download.html)

dazar_t 23. Mär 2008 20:00


Lan Manager Download
 
Guten Tag..

Ich Programmiere grade für meine nächste Lan-Party ein "Manager" So zum chatten festlegen von matches games usw...
Eine Funktion sollte er aber auf jeden fall haben. Download zwischen 2 Clients....

Nun wollte ich das nicht über den Server laufen lassen da der dem Stream ja erst gedownloadet werden muss und dann erst einem Client schickt und dieß ja Zeitraubend.. und unsinnig wäre..

Wie mache ich das jetzt der eine Client dem anderem Client eine Datei schicken kann ???...
Ich arbeite mit den TCutsomWinSockets.

Oder muss ich jedem Client wirklich auch einen Server verabreichen der dann nach bedarf aktiviert bzw Deaktiviert wird ?

mFg:.:.:

toms 23. Mär 2008 20:35

Re: Lan Manager Download
 
Zitat:

Zitat von dazar_t
Oder muss ich jedem Client wirklich auch einen Server verabreichen der dann nach bedarf aktiviert bzw Deaktiviert wird ?

Die Clients bräuchten einfach ein Sende- und Empfangsmodul.

dazar_t 23. Mär 2008 20:36

Re: Lan Manager Download
 
Zitat:

Zitat von toms
Zitat:

Zitat von dazar_t
Oder muss ich jedem Client wirklich auch einen Server verabreichen der dann nach bedarf aktiviert bzw Deaktiviert wird ?

Die Clients bräuchten einfach ein Sende- und Empfangsmodul.

Könntest du mir dies etwas erläutern oder ein beispiel geben denn darunter kann ich mir leider nix vorstellen..
weil ich muss ja eine verbindung zwischen 2 Clients aufbauen und dazu braucht ein Client auch ein Server ?! oder ?!
Also eine Peer 2 Peer verbindung.

Toxicity 23. Mär 2008 21:58

Re: Lan Manager Download
 
Hallo Allerseits.
Es ist so, dass Windows eine eigene "Funktion" hat um Daten zu übertragen, die du bestimmt ausnutzen kannst.
Zuerst nach Rechnern im Netzwerk suchen lassen, haben deine Mitspieler ihre Ordner mit Spielen freigegeben kannst du sie mit einer Explorer-Form einsehen.

Jetzt bleibt die Schwierigkeit, das ganze rüber zubekommen. Ich hab leider garkeinen Plan, wie man das macht. :gruebel:

Aber trotzdem Viel Glück, ich hoffe, ich konnte helfen!

Mit freundlichen Grüßen...

Edit: http://www.delphipraxis.net/internal...t.php?t=104108
Vielleicht hilft dir das oder das http://www.delphipraxis.net/internal...t.php?t=117172 einwenig weiter!

dazar_t 23. Mär 2008 22:04

Re: Lan Manager Download
 
Nja ich habe eine eigene Funktion zum Freigeben von daten gebaut :D

Muss jetzt nur eine Funktion der Daten Übertragung bauen be ider ich scheitere.

Toxicity 23. Mär 2008 22:12

Re: Lan Manager Download
 
Zitat:

Zitat von chest3rs
Auf sourceforge.net gibts ne Menge Clients, "Torrent Torque" ist z.B. in Delphi geschrieben...

Also schau dir das mal an. Wenn es sich nur um eine einzelne Datei handelt, kann man natürlich auch den kompletten Inhalt der Datei auslesen und mit einer Funktion es wieder bei dir abspeichern (zB. als *.exe oder *.mp3). Aber ob das wohl funzt?! :stupid:

Ich probier grad mal aus, ob sowas funktioniert und editiere es dann hier..

Edit: Wie schon vermutet war das totaler Quatsch, es funktioniert nicht und durch den ewig langen Code (Wenn man das so nennen darf) überlastet das Programm schnell. Mein Editor hat grade so en Bild gepackt.

Das ist also keine Möglichkeit.

Aber wenn du die Dateien einlesen kannst, sollte es auch funktionieren Sie zu öffnen und somit auch bei dir abzuspeichern.

Aber das hört sich nur so einfach an, ist es aber nicht! :pale:

Viel Glück weiterhin!!

dazar_t 23. Mär 2008 22:38

Re: Lan Manager Download
 
nja ich denke ich werde zu jedem Client noch einen Server drauf packen und es so lösen
MFG

EDIT: Bin für Vorschläge offen ;D

Toxicity 23. Mär 2008 22:55

Re: Lan Manager Download
 
Vorschlag von mir: Du machst bei dir einen Localhost. Und überträgst alles über eine PHP-Datei mit Socketfunktionen mit TCP oder UDP! Siehe dazu: http://www.uni-regensburg.de/WWW_Ser...f.sockets.html

dazar_t 23. Mär 2008 23:08

Re: Lan Manager Download
 
hehe Nett gemeint aber ich denke ich bevorzuge dieses Projeckt nur in Delphi zu verarbeiten :D

Namenloser 24. Mär 2008 01:22

Re: Lan Manager Download
 
Und warum sollte er ein PHP-Script dazwischen schalten? :gruebel:

alias5000 24. Mär 2008 10:59

Re: Lan Manager Download
 
Ich empfehle an dieser Stelle ganz stark die Tutorials von Narses aus der Delphi-Library/EE:
http://www.delphi-library.de/topic_60744.html (und weitergehend).

Wenn du das nicht selbst schreiben möchtest, kannst du auch dieses Tool verwenden:
LanChat2 TBX (DP-Thread: http://www.delphipraxis.net/internal...ct.php?t=86956)

Gruß
alias5000

dazar_t 24. Mär 2008 13:58

Re: Lan Manager Download
 
Zitat:

Zitat von alias5000
Ich empfehle an dieser Stelle ganz stark die Tutorials von Narses aus der Delphi-Library/EE:
http://www.delphi-library.de/topic_60744.html (und weitergehend).

Wenn du das nicht selbst schreiben möchtest, kannst du auch dieses Tool verwenden:
LanChat2 TBX (DP-Thread: http://www.delphipraxis.net/internal...ct.php?t=86956)

Gruß
alias5000

Danke für deine Antwort aber..

Probleme bei einem Chat habe ich nun wirklich nicht :D. Ich benutze schon ein selber geschriebenes Protokoll. Wollte nur fragen ob ich drum rum komme einem Client noch einem Server zu verabreichen.

und zu 2.)
Nja es geht ja schon darum es selber zu schreiben ;). Uch sehe sowas immer als training u.s.w

alias5000 24. Mär 2008 15:08

Re: Lan Manager Download
 
Ok, dann hatte ich dich falsch verstanden, sorry :D

Ich gehe davon aus, dass du mit TCP arbeitest, wenn du die WinSockets nimmst (UDP machen die ja IMHO gar nicht).
Und bei TCP kommst du allein wegen der Architektur nicht drum, eine Serverkomponente mit in die Anwendung zu integrieren. Denn TCP basiert ja auf dieser verbindungsorientierten, Client-Server gestützten Arbeitsweise.
Client -> Client geht leider nicht.

Aber was genau spricht denn gegen eine Serverkomponente in deiner Anwendung?
Auch wenn Client->Client gehen würde, wärs nicht weniger Aufwand ;) (falls du das meinst)

Gruß
alias5000

dazar_t 24. Mär 2008 22:11

Re: Lan Manager Download
 
Nja gegen einen Server spricht nix aber dann müsste ich auch gleichzeitig wieder einen 2. Client einfügen , da ein Client mit nem "Master" Server und einen eben mit einem CLient zum download verbunden sein muss. Und ob diese Methode grade Ressourcen sparend ist nja.. :D

Namenloser 24. Mär 2008 23:27

Re: Lan Manager Download
 
Ach, 2 Clients und einen Server sollte das Programm wohl verkraften. Wenn man bedenkt, dass BitTorrent teilweise Hunderte Clients erzeugt...

alias5000 24. Mär 2008 23:57

Re: Lan Manager Download
 
Ich kenne jetzt nur die Funktionalitäten von Indy 9/10, aber soweit ich weiß, lassen sich die Aussagen über die WinSockets auch mit Indy 9 vergleichen.
Denn dort wird einfach bei der Serverkomponente für jede Verbindung zu einem Client ein neuer Listener-Thread gestartet. Das geht laut Indy-Hilfe auch in Massen recht gut, irgendwann werden die Ressourcen dann aber mal ziemlich ungünstig ausgelastet (100*x Clientverbindungen). Dafür gibt es wohl ab Win2000 eine neue API (FiberAPI), die das ganze etwas Ressourcenschonender parallelisierbar macht. Aber in dieser Aussage steckt weiterhin der Erfahrungswert drinnen, dass ein Komponentenpaar Client/Server für jede Verbindung kein wirkliches Problem darstellt.

Zudem, wie groß sind deine Dimensionen überschlagen?

Gruß
alias5000

dazar_t 25. Mär 2008 13:02

Re: Lan Manager Download
 
Danke an alle habe es nun mit Client/Client/Server umgesetzt.

Da es ja nicht nur zum Download bereit steht sind die Dimensionen ziemlich klein...

Noch eine frage. Was ist Sinvoller?:
1.) Der Server im Client wird erst auf anforderung einer Datei Aktiviert und anschließend, nach dem Transfer wieder Deaktiviert oder
2.) Der Server im Client läuft immer..

Eigentlich doch Variante 2. aber ich weiss nicht ob dies zu Problemen bei der normalen verbindung zum "Master" Server führen würde.

alias5000 25. Mär 2008 13:59

Re: Lan Manager Download
 
Inwiefern?
Grundsätzlich gilt: An einem PC kannst du nur einen Server auf einem bestimmten Port einer bestimmten Protokollart gleichzeitig online haben.

Wie ist dein Netzwerk in der Software umgesetzt (welche Struktur)?

Gruß
alias5000

dazar_t 25. Mär 2008 14:03

Re: Lan Manager Download
 
Client1 ---->
Client2 ---->
Client3 ----> Master Server(port 314)
Client4 ---->
Client5 ---->

Client 1 fordert nun daten von Client 4 an.

Client1 ---->
Client2 ---->
Client3 ----> Master Server(port 314)
Client4 ---->
Client5 ---->

Server von Client 4(port 315) ----> Client2 von Client1

So ungefähr hoffe ihr wisst was ich meine

b1zZ 25. Mär 2008 14:10

Re: Lan Manager Download
 
Ich würd die p2p Portverteilung dynamisch regeln. Sprich die Clients sollten mit einander "reden" und sich auf einen Port "einigen".

So ist es auch kein Problem, wenn der Port mehrfach verwendet wird im Netzwerk, da du ja direkt anhand der IP Adresse und Port Verbindest.
Mir würde auch spontan nichts anderes einfallen, um eine Portbestimmung zu machen.

(Klar ist aber auch, dass du ggf. prüfen musst ob bei beiden "Clients" der Port auch frei ist.)

Ansonsten hätte ich das genauso gemacht.

alias5000 25. Mär 2008 14:16

Re: Lan Manager Download
 
Lass den Server immer laufen.

Und bzgl. Ports:
Wenn du keinen driftigen Grund hast, wähle Ports jenseits von 1024, alles andere ist vorreserviert. Es sei denn, du arbeitest mit einem Protokoll, das bestimmungsgemäß auf diesen Ports arbeitet.

Gruß
alias5000

@b1zZ: ich glaube wir reden gerade aneinander vorbei :?:
Ich meinte rein die direkte Architektur, also dass du an einem PC nicht einen Port mit mehreren gleichen Servern belegen kannst...

dazar_t 25. Mär 2008 14:25

Re: Lan Manager Download
 
So habe es nun so gemeistert und die Port "verteilung" übernimmt der Master Server der Speichert alle belegten Ports und erhöht dann immer um eins.
Sollte ein anderer Port wieder frei sein wird dieser wieder verwendet.

b1zZ 25. Mär 2008 14:26

Re: Lan Manager Download
 
hm, eigentlich meinte ich sowas in der Art auch :D

Aber mir ist eben noch eine Idee dazu gekommen, wie man es evtl. lösen könnte.

Und zwar: (Die Verbindung und Kommunikation mit dem "Master"-Server aussen vor)
Für die p2p Geschichten eine Klasse/ Thread entwickeln und diese bei bedarf erstellen. Dadurch kann 1 Client gleichzeitig zu mehreren anderen Clients eine p2p Verbindung herstellen.


Natürlich hast du (alias) Recht, die Prüfung der Ports hab ich hier jetzt nicht weiter beschrieben, aber ich habe das gGefühl der Threadsteller hat noch nicht ganz einen konkreten Ansatz.
Die Portwahl kann dann bei der Vereinbarung wer den "p2p-Server" erstellt miteinander ausgemacht werden.

Ps: Macht es nicht vielleicht sogar Sinn, ein eigenes Protokoll für sowas zu entwickeln? Ich kann aber auch grade nicht sagen wie Umfangreich das Projekt grade ist bzw. werden soll.


@dazar_t:
Finde es irgendwie keine gute Lösung, dass du da den Masterserver für nimmst. Denn ich sehe kein Problem darin wenn der selbe Port bei unterschiedlichen p2p UND Clients verwendet wird. Da dieses direkt nur von den p2p Clients vereinbart wird.

dazar_t 25. Mär 2008 14:29

Re: Lan Manager Download
 
@b1zZ
Ich denke ein eigenes Protokoll zu entwickeln sprengt das Projeckt, da dieser Download zwischen 2 Clients nur eine neben geschichte ist.

Für weitere Projeckte wäre dies aber sinvoll, wenn dies eine Haupt funktion werden sollte.

alias5000 25. Mär 2008 14:56

Re: Lan Manager Download
 
Mich würde jetzt gerne endlich mal interessieren, was da alles dabei sein soll, was selbst programmiert wird, oder ob da bereits ein in irgendeiner Form fertiges (fertgi programmiert, fertig spezififiert,...) Produkt eingesetzt wird.
Denn das soll ja anscheinend ein richtiger Chat sein, der zwei Programmteile besitzt. Einen reinen Server und mehrere Clients, die wohl auch untereinander kommunizieren können sollen (Dateitransfer).
Aber ist die eigentliche Chatfunktion schon abgedeckt (IRC- Komponenten z.B.), oder ist das Teil deines Systems?
Dann können wir auch wirklich klären, wo und welche Ports am besten sind, ob die Server immer laufen sollen, wie viele und wer mit wem kommuniziert, sowie, ob ein richtiges Protokoll auch einen Sinn macht.

Ich habe im Moment das Problem da richtig abgewogene Aussagen zu treffen, geht das nur mir so?

dazar_t 25. Mär 2008 15:35

Re: Lan Manager Download
 
Also es ist (wird) alles selbst programmiert.

Ich benutze(entwickle) mein eigenes Protokoll. Der Chat und Datentransfer ist nur nebensache. Hauptsächlich setzt (wird) sich das Programm aus einzelnen funktionen(z.B. Sitzplan, PN System, u.s.w) zusammen.

Später will ich dann eien reinen chat programmieren. Bis dahin lege ich das Protokoll noch nicht auf Binär übertragungen oder sonstiges aus, sondern rein aus Text(.Socket.SendText('Befehl'+'TRENNUNG'+'Text')) .

alias5000 25. Mär 2008 17:38

Re: Lan Manager Download
 
Das ist doch auch eine Form von Protokoll: Terminatorzeichenprotokoll.

Aber du verwendest, wenn ich das richtig sehe für alle Hauptfunktionen dieses Protokoll, warum dann nicht auch für Chat und Dateitransfer?

dazar_t 25. Mär 2008 17:47

Re: Lan Manager Download
 
Natürlich wird dieß über das Protokoll laufen, aber ich werde nicht ein eigenes dafür anlegen, sondern nur soweit funktionen anlagen dass der daten transfer reibungslos funktioniert !

EDIT// So die Port reglung ist nun abgeschlossen. Habe diese so geregelt.

MainServer mit 1. constanten und 2.Variablen.
constante = std_port = 2001 // ab diesem Port wird hochgezählt
variable = std_port_cnt = std_port_cnt + 1 //Port vergabe wird immer einen hochgezählt wenn Client Disconnect wird dieser wieder frei gegeben
variable = std_client_port[CLIENT_INDEX] = std_port_cnt //Array mit allen Clients wo steht welcher port dieser hat


Client ----------------------------------------------> MainServer
Anfrage des Ports die Variablen werden erneuert array hochgezählt usw!
<----------------------------------------------
Antwort mit dem Port und der Server im Client wird mit diesem Port aktiv.

Wie findet ihr diese "port verteilung" ?

b1zZ 26. Mär 2008 07:46

Re: Lan Manager Download
 
Wie gesagt ich hätte die Portverteilung komplett vom Mainserver abgegliedert. Denn für diesen ist es ja nicht wichtig informationen darüber zu haben, ob Clients Infos/Dateien miteinander tauschen oder nicht. Deswegen warum ihn damit belasten? Das können die entsprechenden Clients doch tun. Damit ist dann auch gewährleistet, dass die gewählten Ports auch bei beiden zur Verfügung stehen.

moses20 26. Mär 2008 08:05

Re: Lan Manager Download
 
Sorry OT:
@dazar_t: ist das ein öffentliches Projekt von dir? Sprich: Kann man sich das fertige Programm irgendwo anschauen?

dazar_t 26. Mär 2008 12:47

Re: Lan Manager Download
 
Zitat:

Zitat von moses20
Sorry OT:
@dazar_t: ist das ein öffentliches Projekt von dir? Sprich: Kann man sich das fertige Programm irgendwo anschauen?

Sicher wird es wenn es fertig ist hier als freeware oder open source erscheinen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz