Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Server im Netzwerk finden (https://www.delphipraxis.net/47389-server-im-netzwerk-finden.html)

Zacherl 10. Jun 2005 13:17


Server im Netzwerk finden
 
Hallo,

ich habe folgendes Problem: Ich habe 2 Programme; einen Client und einen Server.
Frage: Wie kann ich den Client eine Nachricht an alle Netzwerkrechner senden und beim Erkennen des Servers dessen IP (und wenn möglich Port) herrausbekommen?

Ich hab mal was von BROADCASTs gelesen ...

Florian

neolithos 10. Jun 2005 13:22

Re: Server im Netzwerk finden
 
Stichworte wären:

- Broadcasts
- UDP

Dabei ist zu beachten:

- Die beiden Rechner müssen in der selber Broadcast-Domain liegen.
- Du musst dem Socket sagen das er Broadcasts senden soll.

Zacherl 10. Jun 2005 13:26

Re: Server im Netzwerk finden
 
Danke,
aber wie sende ich den Broadcasts?
Hast du vielleicht ein wenig Quelltext und vor Allem: Kann ich so z.B.
ClientSocket.Socket.SendText() einfach an alle Netzwerkrechner senden?

Florian

neolithos 10. Jun 2005 13:31

Re: Server im Netzwerk finden
 
Mit TCP geht das nicht, du brachst auf der Client-Seite einen UDP-Socket.

Mit ihm sendest du ein UDP-Dgram an 255.255.255.255:[entsprechender Port], mit einem Inhalt den du selber bestimmen kannst und musst. Das Packet sollte nicht größer 1500 Byte sein, da es sonst eve. z.B. bei WLAN häufiger zu Störungen kommen kann.

Danach sollte der Server entsprechend Antworten.

CODE hab ich gerade keinen zur Hand.

*** WERBUNG ***
http://www.delphipraxis.net/internal...highlight=snmp

Zacherl 10. Jun 2005 13:51

Re: Server im Netzwerk finden
 
erstmal Danke,
Ich kenn mich mit UDP leider gar nicht aus! Alos nochmal:
Ich nehme z.b. einen idUDPClient (wie man ein von dir genanntes DGram sendet weis ich nicht), sende halt die Nachricht 255.255.255.255:Port mit der Anfrage an alle Rechner.
der idUDP Server empfägt das (weis ich auch nicht wie man das handhabt) und sendet seinerseits auch eine Nachricht mit seiner IP an alle Rechner. Die kann dann wieder ausgewertet werden, usw.

Frage: wie sendet man UDP Nachrichten und wie handhabt man den Empfang (Quellcode? :stupid: )

Florian

neolithos 13. Jun 2005 18:02

Re: Server im Netzwerk finden
 
Zitat:

Zitat von Florian Bernd
erstmal Danke,
Ich kenn mich mit UDP leider gar nicht aus! Alos nochmal:
Ich nehme z.b. einen idUDPClient (wie man ein von dir genanntes DGram sendet weis ich nicht), sende halt die Nachricht 255.255.255.255:Port mit der Anfrage an alle Rechner.
der idUDP Server empfägt das (weis ich auch nicht wie man das handhabt) und sendet seinerseits auch eine Nachricht mit seiner IP an alle Rechner. Die kann dann wieder ausgewertet werden, usw.

Frage: wie sendet man UDP Nachrichten und wie handhabt man den Empfang (Quellcode? :stupid: )

Florian

Mit welchen Bibliotheken möchtest du das Machen?
OK: Anscheinend Indy!

TIdUDPClient

BroadcastEnabled = true
Host auf 255.255.255.255


Funktion:
z.B. SendBuffer

Empfang logischerweise via TIdUDPServer.

Quellcode hab ich bei Indy leider keinen, da ich mit WS werkle.


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