Thema: Delphi Ports checken

Einzelnen Beitrag anzeigen

Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#13
  Alt 23. Dez 2002, 23:44
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.
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat