Autor Beitrag
Shadowdragon
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 143

Win 2000
Delphi 6 Pers., Delphi 7
BeitragVerfasst: Mo 19.05.03 08:24 
Moin!
Ich hätt da mal eine bescheidene Frage:

Wenn ich jetzt irgendwo in einem (sagen wir mal einfach 4-Rechner-Netzwerk) einen (in Delphi vollständig ausgeschriebenen und funktionierenden) Server laufen lasse (also mit dem ServerSocket-Compo), kann ich es irgendwie realisieren, dass die Clients den Server auf dem Netzwerk selbstständig suchen (und wenns geht auch finden)?

Meinen tu ich das so:

-Server startet unter einer spezifischen IP-Adresse.
-Clientprogramm sucht im Netzwerk, ob irgendwo auf den verfügbaren
Ressourcen ein Server zu finden ist.
-Client verbindet sich, wenn er einen gefunden hat (sonst eben die on E:
Exception-Leier).

Wie sich der Client direkt zum Server verbinden kann, wenn die IP-Addresse vorgegeben ist, weiss ich ja.... nur liegt in diesem Fall ein Server und 3 Clients vor, von denen keine wissen, dass es die anderen gibt. Und die IP-Addresse über den Raum zurufen kommt reichlich unlustig.

Daher, danke für jeden Beitrag zu der Sache und wenn's möglich sein sollte wäre ich für eine genaue Erklärung dankbar ;)

MfG

Shadowdragon

_________________
Ein Programm gleicht dem Prinzip von Jenga:
Viele Bestandteile, wird nach oben hin immer besser, nach unten hin immer instabiler und wenn man was falsch macht klappt der ganze Mist zusammen.
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 19.05.03 09:51 
also an deiner stelle würde ich von den client/server sockets mal die finger weglassen und eher mit indys arbeiten, denn da hast du einige mehr möglichkeiten

desweiteren würde ich dann einen IP sniffer basteln, der erst einmal die ganzen vorkommenden IPS speichert und dann jede ip überprüft, ob ein server auf dieser läuft.

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
Shadowdragon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 143

Win 2000
Delphi 6 Pers., Delphi 7
BeitragVerfasst: Mo 19.05.03 10:24 
Zitat:

also an deiner stelle würde ich von den client/server sockets mal die finger weglassen und eher mit indys arbeiten, denn da hast du einige mehr möglichkeiten


Danke für deine Meinung, aber wenn da steht dass ich`s mit Sockets realisieren will dann mein ich das auch so....

Zitat:

desweiteren würde ich dann einen IP sniffer basteln, der erst einmal die ganzen vorkommenden IPS speichert und dann jede ip überprüft, ob ein server auf dieser läuft.


Die IP`s der Rechner *sind* ja schon bekannt, da das ganze ja sonst unmöglich ein Netzwerk sein könnte, aber du hast den eigentlichen Punkt der Frage nicht verstanden.....
WIE überprüft man, ob ein Server auf ihr läuft? Einfach zu jeder IP eine Verbindung aufbauen wär ja arg dabbisch.

_________________
Ein Programm gleicht dem Prinzip von Jenga:
Viele Bestandteile, wird nach oben hin immer besser, nach unten hin immer instabiler und wenn man was falsch macht klappt der ganze Mist zusammen.
SpeedyGTD
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 89



BeitragVerfasst: Mo 19.05.03 18:42 
das dürfte aber die einzige möglichkeit sein.
ich lass mich aber gerne vom gegenteil überzeugen ;)
warum sind die IPs eigentlich bekannt?
hast du ne Liste wo die drinne stehen?
dann dürfte es eigentlich kein Prob sein alle abzufragen

_________________
...hab ich vergessen ;)
Shadowdragon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 143

Win 2000
Delphi 6 Pers., Delphi 7
BeitragVerfasst: Mo 19.05.03 21:38 
Windows weist ja in einem Netzwerk jedem Rechner eine IP zu... (man kann das Ganze ja auch auf Internet ausdehnen aber das wär ja zu weit gegriffen).

Wenn Windows (oder generell irgendein Programm) mit einem anderen Rechner kommuniziert, verwendet es dessen IP, um zu wissen, welcher Rechner das denn nun ist.

Das mit dem auslesen ist eine gute Idee, und es läuft in LANs ja meist über TCP/IP....

Was noch eine Idee wäre, ist mittels IPCONFIG von dem Server die IP zu ermitteln, der diese dann in Form einer Textdatei an einen vordefinierten Computer sendet, dessen IP (oder meinetwegen auch Domain!) bekannt ist. Nun greifen die Clients auf diesen Rechner zu, holen sich die IP und können sich mit dem Server verbinden.

Wozu das gut sein soll? Nun, nehmen wir mal an, wir lassen das Ganze übers Internet laufen, du hockst in Friesland und dein Chatpartner in München...wenn jeder jetzt noch dynamische IPs hat, wird das ein endloser Stress. Wenn aber der Server seine IP an einen festen "Ort" sendet, wo der Client sie abholen kann, is das kein Problem ;)
Da zumal die IP vom Client ja in dem Fall völlig egal ist.

Aber....*heul* dann muss ich ja noch einen festen Server einbinden...

....macht nix, www.8ung.at is für solche Testzwecke prima geeignet
:)


Wenn jemand einen besseren Vorschlag hat oder mich einfach nur für blöd erklären und mich belehren will, soll dies bitte tun ^__^

_________________
Ein Programm gleicht dem Prinzip von Jenga:
Viele Bestandteile, wird nach oben hin immer besser, nach unten hin immer instabiler und wenn man was falsch macht klappt der ganze Mist zusammen.
mars
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 238

Debian Woody, Win 2000, Win XP
D7 Ent, Kylix 3
BeitragVerfasst: Mo 19.05.03 22:47 
Wenn du in einem Netzwerk nicht alle IP's abfragen willst, gibt es doch logischerweise nur eine Möglichkeit: der client macht sich im Netzwerk bemerkbar und bekommt eine Antwort mit der Server-Adresse. Liege ich da falsch? Lässt sich das nicht mit einer Broadcast-Message des Clients und einer Antwort des Servers realisieren?