Server Socket und Client Socket

spiderman21

Grünschnabel
Hallo,

Ich versuche gerade eine Art Chat zu entwickeln. Bis jetzt hab ich mein Programm soweit:
Es gibt einen Server Socket und Clienten Sockets. Die Clienten können sich mit dem Server verbinden und Text (Strings) zum Server schicken, am Server kann der Text dann auf der Commandozeile ausgegben werden. Für jeden Client wird ein Serverthread erzeugt.
Jetzt soll aber Text von einem Client zu anderen geschickt werden.
Also zum Beispiel so: Ein Client schickt Text an den Server und der Server verteilt den Text dann an alle anderen verbundenen Clients oder ein Client schickt Text an den Server und der Server verteilt den Text dann an einen bestimmten Client.
Kann mir dabei jemand helfen?

danke!
lg
 
Probier den Server als Singelton zu implementieren. Sonst hast du bei 20 Clients folglich 20 Server. Dies rentiert sich jedoch nicht wirklich und die Server kommunizieren ja auch nicht miteinander
 
Hi,
erstmal muß der Server seine Threads kennen.
Also am Besten eine WeakHashMap erzeugen in die sich jeder Thread selbst einträgt.
(key: loginname; value: Thread-Objekt)
(Bei der WeakHashmap räumt der gc ab und zu die Leichen weg...)
Dann bekommt das Thread-Objekt eine Methode, mit der Du etwas an den Client senden kannst.
Den Rest kannst Du dir denken: Wenn was an alle zu senden ist, einfach die values durchgehen. Denk aber dran, daß auch mal ein Thread hängenbleiben kann und dann die Anderen nicht blockieren sollte.

CU Roland
 

Neue Beiträge

Zurück