Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi UDP- Broadcasts (Fortsetzung von Ports checken) (https://www.delphipraxis.net/1812-udp-broadcasts-fortsetzung-von-ports-checken.html)

S - tefano 25. Dez 2002 15:06


UDP- Broadcasts (Fortsetzung von Ports checken)
 
Hi,

so, hab so ca nen Drittel vom geplanten Zeugs fertig.
Jetz stehe ich vor einem Problem.
-----------------------------
Vorgeschichte, wies zu dem Problem kommt und so
-----------------------------
Undzwar habe ich 2 ExeDateien, die eine is nur zum Chatten da, und die andere meldet den User an, verarbeitet Requests und verschickt welche.
So, das User anmelden hab ich zuerst so geregelt, dass das Programm in einem Verzeichnis (im Netzwerk verfügbar, alle Programm benutzen das gleiche) ne Datei ablegt, wo IP und sowas drinsteht.
Is aber irgendwann zu kompliziert und umständlich geworden, da is mir das mit dem UDP- Broadcast eingefallen. Is ja irgendwie eleganter.
Das Programm Broadcastet also den Nickname und die IP des Rechners, der sich als online einträgt. Jeder Rechner, der das Empfängt trägt den Nickname und die IP des Broadcasters in ne Liste ein, und beantwortet diesen Broadcast mit den eigenen Daten (also Nick und IP), sodass der sich anmeldende Rechner direkt die komplette Userliste zugeschickt bekommt.
Ich benutze die IndyKomponenten, und hab da bislang kein Broadcast- Tutorial gefunden.
Da is allerdings ein Beispiel, was per UDP eine Message an eine spezielle IP schickt, und mit ReceivedString nach dem Verschicken melden kann, ob die Message angekommen is - weil der Empfänger sone reply- Methode benutzt, indem er abindings.sendto aufruft.
Und diese Empfangsmethode is ja immer die selbe, ob Broadcast oder spezielle IP.
Jetz kann ich ja allerdings nicht mehrere replies per Bindings empfangen, oder? Wenn jetzt z.B. 16 Rechner antworten würden, dann würde ich über ReceiveString doch nur einen bekommen, oder?
Davon geh ich einfach mal aus. So gesehen müsste dann jedes antwortende Programm ne neue eigene Message erstellen und an mich abschicken - is ja kein Problem.
-------------------------------
So, das war die Vorgeschichte.
-------------------------------
Jetz frag ich mich aber, wie dieses OnUDPRead- Ereignis funktioniert.
Wenn ich ja meine Daten Broadcaste, antworten die anderen Rechner ja ziemlich gleichzeitig. Wie geht das Event damit um? Sucht es sich einen raus, und die anderen lässt es weg, oder werden alle Antworten nacheinander durch Events abgearbeitet?
Wenn ich in der Hilfe dazu was überlesen hab, sorry... mein Fehler.

Trotzdem, über Antworten würd ich mich freuen,

Bis dann,

S - tefano


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