Entwickler-Ecke

Internet / Netzwerk - ServerSocket -Input von versch. Clienten zu versch. Fenstern


Nowo - Mo 31.03.08 14:04
Titel: ServerSocket -Input von versch. Clienten zu versch. Fenstern
Hey

Ich habe einen Server.
Zu dem Verbinden sich mehrere Clienten. (sie sind in einem ListView gelistet)
Die Clienten senden nun daten/text... dieser soll aber auch im richtigen fenster landen.

Will heißen: wenn ich ein kleines Fenster aufhabe, um micht mit diesem Client zu verbinden,
(z.B. ein Chat) und ein 2tes Fenster was zu einem anderen Client sendet, dann sollen die Daten die zurückkommen
auch wider in dem jeweiligen Fenster landen.
Also das ServerConnection 0 zu Fenster 0 sowie ServerConnection 2 zu Fenster 2 Gesendet wird.
Nur weis ich nicht wie ich das Realisieren soll.

Ich hatte überlegt das mit der IP zu machen. Die jeweiligen Fenster haben nämlich die IP-Adresse des Clienten als Caption.
Also so ungefähr: ServerConnection 1 mit IP 123.123.123.9 ReceiveText zu fenster welches 123.123.123.9 in der Caption hat.
:oops: ähm ja :roll:

so ungefähr...

Da muss es doch bessere lösungen geben... mit ner Process ID oder ähnlichem :- /



Vielen Dank fürs Anschauen
Nowo


Narses - Mo 31.03.08 14:13

Moin!

Verwendest du nun den TServerSocket oder den TNBFPAServer? :gruebel:

Falls du das mit einem TNBFPAServer machst: der hat zum einen eine SessionID, anhand derer du eine Verbindung eindeutig identifizieren kannst, zum anderen kann der TProtocolAdapter ein Referenz-Objekt verwalten (auf Wunsch sogar als Eigentümer, Demo ist z.B. die RC4-Verschlüsselung im TNBFPA-Thread) :arrow: RTFM :zwinker:. Damit sollte das wohl möglich sein, würde ich sagen. :idea: ;)

cu
Narses


Nowo - Mo 31.03.08 15:28

Vielen Dank !!!
Aber ich kann wenig damit anfangen was du sagst... :- (
Wie Kann mir das Referenz-Objekt weiterhelfen ?
Ich möchte ein bestimmtes Fenster ja zu einem Bestimmten Client zuordnen.
(ja ich benutze den TNBFPAServer)

Hast du einen kleines Codesnipped oder ähnliches ?
Oder auch eine Idee... ich bin nicht weit genug in meiner Kenntnis über Delphi
alsdas ich das umsetzen könnte.


Narses - Mo 31.03.08 19:54

Moin!

user profile iconNowo hat folgendes geschrieben:
Aber ich kann wenig damit anfangen was du sagst... :- (
Tja, nun... :?

user profile iconNowo hat folgendes geschrieben:
Wie Kann mir das Referenz-Objekt weiterhelfen ?
Ich möchte ein bestimmtes Fenster ja zu einem Bestimmten Client zuordnen.
(ja ich benutze den TNBFPAServer)
Genau da hilft das Referenz-Objekt doch weiter. ;) Schau mal hier [http://www.delphi-forum.de/viewtopic.php?p=450581#450581], da wird das mit dem TRC4Adapter so gemacht. Du nimmst halt die Objektreferenz zu deinem Fenster, fertig. :idea:

user profile iconNowo hat folgendes geschrieben:
ich bin nicht weit genug in meiner Kenntnis über Delphi als das ich das umsetzen könnte.
Naja, vielleicht solltest du dann erstmal noch ein paar Tutorials durchpauken, z.B. das hier [http://www.delphi-library.de/viewtopic.php?p=433259#433259]. :nixweiss:

cu
Narses


Nowo - Di 01.04.08 14:43

Nein nein nicht "an" den Client.
Ich habe einen Server. Und dort bestehen verschiedene Formen.
Und die Jeweiligen Formen vom Server sollen zu bestimmtem IP's bzw. Clients
zugeordnet werden.
Soll heißen wenn DasUndDas von Client 4 (192.168.1.4) kommt, dann soll das in Fenster Nr.4
bzw. in das Fenster was zu der IP zugeordnet ist...
und da ist liegt mein Problem :- /


Narses - Di 01.04.08 23:34

Moin!

user profile iconNowo hat folgendes geschrieben:
Nein nein nicht "an" den Client.
Ich weiß, der TRC4Adapter ist auch nur ein Beispiel für die Verwendung des RefObjects. ;)

user profile iconNowo hat folgendes geschrieben:
Ich habe einen Server. Und dort bestehen verschiedene Formen.
Und die Jeweiligen Formen vom Server sollen zu bestimmtem IP's bzw. Clients zugeordnet werden.
Das habe ich auch schon so verstanden, und es ist auch über das RefObject oder alternativ nur mit der SessionID lösbar - nur leider scheinst du damit noch überfordert zu sein. :| OK, dafür kannst du nix (und ich auch nicht ;)), aber hier kann ich dir leider nicht weiter helfen, ich kenne ja deinen Code und deinen Wissensstand nicht, und obendrein habe ich auch keine Zeit (im gleich im Urlaub). :nixweiss:

Viel Erfolg noch! ;)
cu
Narses


Nowo - Mi 02.04.08 09:44

Naja ich meinte halt soetwas wie einen Find befehl.
Also wie "finde" ich ein bestimmtes fenster mit nem Bestimmten Namen.
Meinst du du könntest noch kurz soetwas... erstellen ? oder irgendwer
auf diese art: wenn serversocketRead find form mit (ServerSocket.SessionID) und gebe dahin das incoming (read).
das bräuchte ich eigentlich nur


Gute Erholung Narses :D
Und Danke für deine Hilfe... ich warte hier nicht mehr auf eine Antwort von dir (kann ich auch mit mir selbst nicht vereinbaren) :wink:

Hat jemand eine Idee wie das oben zu realisieren wäre ? also einen code...