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
P.S.: Da ich eh schon mit Broadcasts arbeite, hab ich mich dazu entschieden, einen großen öffentlichen ChatRoom im Hauptprog zu machen, und die EinzelMessageFenster trotzdem noch zusätzlich zu machen.