![]() |
Aufbau eines Multiuserchats mit den Indys
Hallo,
ich bin gerade dabei einen Multiuserchat mit den Indys zu programmieren. Es soll am Schluss ähnlich wie MSN-Messenger oder ICQ funktionieren. Ich habe bissher nur noch keinen Ansatz gefunden, wie ich die verbindungen aufbauen soll. Mit der TCP/IP-Komponente kann man ja nur eine Verbindung aufbauen. Ich müsste also viele Komponenten nachträglich erstellen, um alle User des Chats zufriedenstellend zu bedienen. Ich denke, dass sich hier schon Viele mit diesem Thema beschäftigt haben und auch brauchbare Ansätze gefunden haben. Es muss ja nicht gleich ein komplettes Protokoll sein! Danke für die Hilfe kabuco |
Re: Aufbau eines Multiuserchats mit den Indys
Ich würde mich auf den Client beschränken, da für die Serverfunktionalität schon einige gute OS--Lösungen gibt ( z.B. für das Jabber-Protokoll)
|
Re: Aufbau eines Multiuserchats mit den Indys
Wie meinst du das? Ich möchte ja mein eigenes Protokoll verwenden. Ich wollte nur eine Lösung, mit der ich mehrere Clients verwalten kann. D.h. wenn ein Client an den Server eine Nachricht schreibt, soll der Server die Nachricht an den korrekten Clienten weiterleiten.
Gruß kabuco |
Re: Aufbau eines Multiuserchats mit den Indys
Ok wenn du das Rad neu erfinden willst :-D.
damm mußt du ein Merkmal finden, wie du die Clients eindeutig unterschieden kannst und diese in eine List oder DB schreiben. |
Re: Aufbau eines Multiuserchats mit den Indys
Ok also ich müsste da im Server Programm wie auch im Client eine Server Komponente und eine Client Komponente haben. Der Server empfängt über die Serverkomponente die Daten vom Clienten, und sendet diese über die Clientkomponente an den jeweiligen Clienten weiter. Dieser Empfängt über seine Serverkomponente die daten und verarbeitet sie!
Nun bleibt aber noch das Problem: Wie bekomme ich die IP, an die ich die Daten wieterleiten muss? |
Re: Aufbau eines Multiuserchats mit den Indys
Szenario: Server existiert => Client meldet sich an Server an => Server speichert die IP des Clienten => Weitere Clienten verbinden sich mit Server, Server speichert wieder die IP's => Client1 sendet Nachricht an Server => Server verarbeitet und sendet sie an alle Clienten in der Liste => Client empfängt Daten und verarbeitet.
Verschiedene Methode und Lösungsansätze findest du per Forensuche. |
Re: Aufbau eines Multiuserchats mit den Indys
IMHO wird aber allein die IP nicht zur eindeutigen Identifizierung reichen.
|
Re: Aufbau eines Multiuserchats mit den Indys
Zitat:
|
Re: Aufbau eines Multiuserchats mit den Indys
IP, Port, Username sollte einigermaßen eindeutig sein.
|
Re: Aufbau eines Multiuserchats mit den Indys
Zitat:
|
Re: Aufbau eines Multiuserchats mit den Indys
Wenn es 2 Meyers gibt haben die normalerweise 2 verschiedene Benutzernamen. Außerdem sorgt NAT dafür das es dann 2 verschiedene Sourceports sind.
|
Re: Aufbau eines Multiuserchats mit den Indys
Also, der Port ist immer gleich 60000! Aber die Internet IP ist ja bei jedem User verschieden. Wie bekomme ich die heraus?
Gruß kabuco |
Re: Aufbau eines Multiuserchats mit den Indys
Zitat:
Wie du die IP herausfinden kannst, findest du heraus, indem du mal die Forensuche ein bisschen quälst. ;) |
Re: Aufbau eines Multiuserchats mit den Indys
Wenn du die Indies verwendest gibt es doch beim Server über Connections schon die einzelnen Verbindungen der Clients. Die ID's dieser Connections kannst du auch verwenden um zwischen den Clients daten auzutauschen. Einfach allen Clients auf Abfrage die verschiedenen ID's mitteilen. Dann sagt ein Client zum Server: Schicke Nachricht XY an Client [ClientID] und der Server reischt diese Nachricht dann an den Client mit der ID [ClientID] weiter.
|
Re: Aufbau eines Multiuserchats mit den Indys
Hi,
hab das ganze schon mit nem eigenen Protokoll gemacht(s. Signatur). Kannst mich ja bei meinem Messi mal antickern dann kann ich Dir den ein oder anderen Kniff oder Stolperfalle mitteilen. Greetz DataCool |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 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-2025 by Thomas Breitkreuz