Entwickler-Ecke
Internet / Netzwerk - Server im Netzwerk durch Clients suchen
Shadowdragon - Mo 19.05.03 08:24
Titel: Server im Netzwerk durch Clients suchen
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
foxy - 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.
Shadowdragon - 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.
SpeedyGTD - 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
Shadowdragon - 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,
http://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 ^__^
mars - 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?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!