Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Client soll Server suchen... (https://www.delphipraxis.net/153582-client-soll-server-suchen.html)

sabbert 9. Aug 2010 14:02

Client soll Server suchen...
 
Hallo zusammen :wink:,

Ich hab da ein kleines Problem.

Und zwar teste ich grad ein bisschen mit den Indy Komponenten TIdTCPClient und TIdTCPServer herum.

Hatte mir da auch zwei Programme zurechtgebastelt, einmal Server.exe und Client.exe.

Der client soll einfach nur zum Server connecten und bekommt dann eine Rückmeldung, was auch alles klappt.

Mein Problem ist, das dies alles über "localhost" abläuft. Würde das aber auch gerne im Netzwerk testen,

dh. das ich den Server auf irgendeinen Computer mit Zugriffrechten platziere und der Client soll den Server finden.

Wie kann ich dies bewerkstelligen?

Zweck des Ganzen, es soll später ein recht kleiner Netzwerkchat werden :D:D:D.

mfg

Klaus01 9. Aug 2010 14:21

AW: Client soll Server suchen...
 
Hallo,

ich denke, dass willst Du nicht wirklich.
Alle Ip Adressen von 1.0.0.0 bis 255.255.255.255
noch dem Port abfragen auf dem Dein Server lauscht.
Stichwort dazu wäre: Portscan.

Multicast-Adressen kannst Du dabei aussparen.

Grüße
Klaus

DeddyH 9. Aug 2010 14:23

AW: Client soll Server suchen...
 
Spontan fallen mir 2 Möglichkeiten ein:
- Du gehst das gesamte Netzwerksegment Client-IP für Client-IP durch und schaust, ob Du eine Antwort bekommst.
- Du schickst per UDP-Broadcast einen Rundruf und wartest auf Antwort.

xxl1 9. Aug 2010 14:30

AW: Client soll Server suchen...
 
Im LAN mögen ja Broadcasts noch möglich sein, solltest du dies allerdings irgendwann mal im Internet verwenden wollen geht das ganze schief ;-)
Realisier das ganze lieber über einen Loginserver, selbst der Dienst ICQ macht das so
(z.b login.icq.com:5190)

DeddyH 9. Aug 2010 14:33

AW: Client soll Server suchen...
 
Ich dachte, wir reden hier von LAN :gruebel:

xZise 9. Aug 2010 14:40

AW: Client soll Server suchen...
 
Naja er hat das nicht weiter spezifiziert.

Es gibt da auch zwei andere Möglichkeiten:
  • Es gibt einen Server mit fester IP Adresse(nbereich), der alle Anfragen verwaltet.
  • Du nutzt sowas wie DNS/Hostnames o.ä.

Du kannst dir das so vorstellen, dass du ein Haus hast mit verschiedenen Zimmern und dann musst du in jeden Zimmer gucken, ob da dein Server ist ;)

Alternativ (meine erste Lösung) da gibt es ein Foyer das du fragst und beim zweiten gibt es eine Art Register. Beide Techniken sind ziemlich ähnlich ;) Ersteres wird meistens bei Internetspielen verwendet (du machst den Server und der meldet sich bei einem Metaserver) und zweites im WWW sozusagen. Man kann auch beides kombinieren ;)

[edit]Ähr... bevor ich zerrissen werde:
Beides ist identisch :P ersteres ist die Idee dahinter und zweites ein fertig durchdachtes Protokoll.[/edit]

MfG
Fabian

sabbert 9. Aug 2010 14:41

AW: Client soll Server suchen...
 
also ich weiß net ob das geht aber würde es nicht gehen im Netzwerk alle Benutzer ausfindig zu machen und dann zu gucken welche IP adresse diese haben. Som it hätte man doch eine Ip adresse um nach dem server zu suchen?

Oder seh ich das komplett falsch?!

xZise 9. Aug 2010 14:44

AW: Client soll Server suchen...
 
Zitat:

Zitat von sabbert (Beitrag 1040536)
also ich weiß net ob das geht aber würde es nicht gehen im Netzwerk alle Benutzer ausfindig zu machen und dann zu gucken welche IP adresse diese haben. Som it hätte man doch eine Ip adresse um nach dem server zu suchen?

Oder seh ich das komplett falsch?!

Nein das siehst du nicht komplett falsch, aber das könnten viele werden (in der Regel in Heimnetzerwerken 254 IPs, also ohne die Broadcastadresse und die Subnetzadresse).

Aber umso größer das Netzwerk umso unhandlicher wird das. Guck dir IRC an. Da sagst du auch nicht ich will den Server "freenode" und er sucht alles mögliche ab.

Übrigens funktioniert deine Technik am besten nur im Heimnetz (via Broadcast). Aber sobald geroutet wird, kann man nicht mehr broadcasten.

MfG
Fabian


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:39 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