![]() |
Ansonsten würde ich vorschlagen, sofern das von deinem Konzept her geht, einfach nur einen Port zu "besetzen" für dein Programm...
Chris |
Hi,
das könnt ich machen wenn ich sone Art LAN- globalen Chatroom machen würd, wo alle gleichzeitig drinsind. Ich möchte das aber erstmal so im Stile eines ICQ- Messagefensters machen. Und dann muss ja jede Verbindung nen eigenen Port haben, weil sonst Probleme auftreten (jedenfalls hab ich das schon ziemlich oft in Foren gelesen). Also dann, S - tefano |
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz