Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Aufbau eines Multiuserchats mit den Indys (https://www.delphipraxis.net/80632-aufbau-eines-multiuserchats-mit-den-indys.html)

kabuco 12. Nov 2006 19:16


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

mkinzler 12. Nov 2006 19:23

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)

kabuco 12. Nov 2006 19:39

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

mkinzler 12. Nov 2006 19:44

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.

kabuco 12. Nov 2006 19:51

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?

Balu der Bär 12. Nov 2006 20:15

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.

mkinzler 12. Nov 2006 20:22

Re: Aufbau eines Multiuserchats mit den Indys
 
IMHO wird aber allein die IP nicht zur eindeutigen Identifizierung reichen.

Balu der Bär 12. Nov 2006 20:25

Re: Aufbau eines Multiuserchats mit den Indys
 
Zitat:

Zitat von mkinzler
IMHO wird aber allein die IP nicht zur eindeutigen Identifizierung reichen.

Wo wir wieder bei der alten Diskussion wären. Es gibt keine eindeutige Identifizierung. Da kannst sonstwas mitspeichern, 100% sicher das es wirklich eindeutig ist kannst du aber nie sein.

mkinzler 12. Nov 2006 20:37

Re: Aufbau eines Multiuserchats mit den Indys
 
IP, Port, Username sollte einigermaßen eindeutig sein.

Balu der Bär 12. Nov 2006 20:43

Re: Aufbau eines Multiuserchats mit den Indys
 
Zitat:

Zitat von mkinzler
IP, Port, Username sollte einigermaßen eindeutig sein.

Wieso? Angenommen es gibt zwei Meyers in einem Firmennetzwerk und die betreiben die Software über den gleichen Port, schon isses vorbei mit der Eindeutigkeit.

mkinzler 12. Nov 2006 20:49

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.

kabuco 13. Nov 2006 12:41

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

Balu der Bär 13. Nov 2006 12:44

Re: Aufbau eines Multiuserchats mit den Indys
 
Zitat:

Zitat von kabuco
Aber die Internet IP ist ja bei jedem User verschieden.

Nein, ist sie nicht. Wenn zum Beispiel zwei Leute aus einem Netzwerk im Internet surfen, habe beide die gleiche IP (jedenfalls manchmal).

Wie du die IP herausfinden kannst, findest du heraus, indem du mal die Forensuche ein bisschen quälst. ;)

SirThornberry 13. Nov 2006 13:11

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.

DataCool 14. Nov 2006 23:02

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 15:24 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