Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi ServerSocket auf anderem Rechner finden (https://www.delphipraxis.net/54476-serversocket-auf-anderem-rechner-finden.html)

Gentleman 5. Okt 2005 00:12


ServerSocket auf anderem Rechner finden
 
Hi!

Ich arbeite mit Server- und ClientSocket. Das Projekt besteht aus zwei Anwndungen, dem "Host", mit der ServerSocket Komponente und dem "Client", mit der ClientSocket Komponente. Nun möchte ich, dass noch bevor sich der Client an einem Server anmeldet, eine Liste aller im Netzwerk gestarteten Hosts erstellt wird. In dieser Liste sollen IP-Adresse und Port des Hosts angezeigt werden.

Nun meine Frage, wie ist es möglich eine solche Liste zu erstellen?


Ich hoffe ihr könnt mir helfen.
Gruß, Gentleman

TrooperMan 5. Okt 2005 00:42

Re: ServerSocket auf anderem Rechner finden
 
Das geht nur im LAN und dann nur über einen UDP Broadcast. Du broadcastest quasi ein Packet vom Client mit der Aufforderung, die gültigen Server-Infos zurückzuschicken. Alle Server, die auf dem gewählten UDP-Port laufen, werden dann hoffentlich antworten und somit kannst du deine Liste erstellen.

Gentleman 5. Okt 2005 11:06

Re: ServerSocket auf anderem Rechner finden
 
Das ganze muss im Moment auch nur LAN funktionieren. Könntest du mir das mit dem UDP Broadcast noch etwas genauer erklähren? Villeicht ein oder zwei Codeschnippsel? Ich habe im Moment nämlich keine so rechte Vorstellung wie man das realisieren könnte :stupid:


Gruß, Gentleman

Zacherl 5. Okt 2005 13:01

Re: ServerSocket auf anderem Rechner finden
 
Du setzt auf den Client und den Server deiner Anwendung jeweils einen IdUDPServer und einen IdUDPCLient.
Nun schickst du mit dem UDPClient vom Client einen Broadcast mit der gleichnamigen Methode zum Server. Der Text des Broadcasts kann einfach z.B. "GetServer" heißen. Im OnUDPRead Ereigniss des UDPServers, der sich auf deiner Server Anweundung befindet, guckst du, ob der PaketText "GetServer" ist und sendets dann mit dem UDPClient des Servers ein Paket mit Ip und Port zurück, welches du im IdUDPServer des Clients wieder auswerten kannst.

Florian


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