Autor Beitrag
bate
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 21.05.04 16:56 
Hallöchen,

ich bin dabei ne Anwendung zu schreiben die auf einen selbst geschriebenen Server zugreifen soll.
(Ich verwende INDY Komponenten)


PC1 -> Startet Server auf Port xxxx z.b.

nun starte ich auf PC2 den passenden Client.
Der Client weis aber beim starten nicht wo sich der Server befindet. Sprich IP, Port unknown.

Wie kann ich es am geschicktesten anstellen um herraus zu finden auf welchem port der Server gestartet ist?
Per UDP und echo oder gibt es da ne andere Möglichkeit das zu realisieren. Soll im prinzip wie bei jedem Netzwerkspiel ablaufen, ich starte Anwendung und die zeigt mir mögliche Server mit Port etc an.
Shadowdragon
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 143

Win 2000
Delphi 6 Pers., Delphi 7
BeitragVerfasst: Fr 21.05.04 18:26 
Ich hab' das früher mal in einem Chatprogramm so gelöst, dass der Server im lokalen Netzwerk in einem bestimmten Zeitabstand nach Clients unter einem bestimmten Bereich sucht und denen die IP direkt streamt; da ja im LAN die Übertragungsgeschwindigkeiten recht hoch sind, stellt das kein Problem dar.

Wenn das Ganze über's Internet laufen soll, macht das Programm folgendes: Auf einem festen DNS-Server (z.B. über Free-Webspace bei Lycos o.ä.) wird vom Programm-Server eine Datei mit der IP / den IPs angelegt (je nach Serverzahl); diese Datei wird beim Start des Servers mit der aktuellen IP aktualisiert, nach dem Beenden des Servers wieder gelöscht. Die Clients greifen auf diese Datei zu und holen sich so die jeweils aktuelle IP des Servers.

Wer mir nun einen Backstein gegen den Kopf wirft und mich für unfähig erklärt, mag Recht haben, das ist aber die einzige dynamische Lösung, die mir gerade einfällt.

_________________
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.
bate Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 21.05.04 21:08 
Hi, fürs dynmische würd ich ja den DNS updaten, das kein Problem. Gib ja genug Free DynDNS Dienste.
Es geht mir aber darum wie es z.B die Spiele Hersteller machen. Ich die Zeigen ja auch alle Server im lokale Netz an die mit dem Spiel kompatibel sind. Also es könnte auch vorkommen das dort 5 angezeigt werden.

Dev Server => 192.168.x.y:7777
Life Server => 192.168.x.y:8888
Backup Server => 192.168.x.y:9999

es muss also irgend ne Lösung über IP Broadcasting oder dergleichen geben. :) Also her mit den Ideen. :)

_________________
Kylix 3 Pro. eng. / SuSE 9.x / KDE 3.x
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Sa 22.05.04 01:17 
Also die machen das alle mit a) Master-Servern (HL/CS) oder b) UDP-Requests (HL/CS im LAN, soweit ich weiß).

a)

Ein Server verbindet sich mit einem Masterserver (es existiert eine Liste mit vielen MasterServer-IP-Adressen auf dem Client) und registriert sich.

Zum Suchen verbinden sich andere Clients mit dem Master und führen Requests aus und wissen dann, unter welcher IP ein Server steckt.


b)

Bei UDP wird ein Broadcast in das Subnet gesendet, die Server antworten dann auf den Broadcast et voila - haste Deine IP (kann je nach HOPS und TTL länger dauern).

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca