Client Server verbindung.: Nachricht an einzelnen Client?

lukelukeluke

Erfahrenes Mitglied
Hallo zusammen,
Ich habe einen JAVA client der ca. so aussieht:
socket = new Socket( host, port );
din = new DataInputStream( socket.getInputStream() );
dout = new DataOutputStream( socket.getOutputStream() );
dout.writeUTF(sendMessage); // etwas an den server senden
String getMessage = din.readUTF(); //da steht automatisch alles drin was der server sendet.

Dazu habe ich nen JAVA Server, welcher ähnlich aufgebaut ist. Dieser bekommt Nachrichten vom Client und sendet diese automatisch an alle clients.
Meine Frage: Ist es nun möglich etwas nur an einen client zu schicken? Müssten der server und dieser speziefische client eine zusätzliche Verbindung haben?

Danke für eure Hilfe!
 
Hi,

das Problem hierbei ist, das du ein Callback brauchst. Ich denke, wenn man das mit Sockets macht, ist es vielleicht etwas schwerer. Hierzu eignet sich in meinen Augen RMI besser.
Wenn du in google nach RMI und Callback suchst, findest du einige Tutorials.
 
Hiho Zilchinger!

Vielen Dank für deine Antwort erstmal! Ich habe nach den beiden Begriffen (RMI und Callback) im Internet gesucht, bin aber nicht ganz schlau geworden bzw. habe wohl zu wenig lange gesucht um genau das zu finden, was ich brauche.

Jedenfalls habe ich danach nochmals mit der Socket Variante weitergearbeitet, und auch eine Lösung gefunden:

Zuerst akzeptiere ich alle Sockets, kreiere einen OutputStream für sie und schreibe die beiden Sachen in ein Hashtable. Der socket ist also key und value ist der dout, in welchen ich was reinschreibe.

Nun habe ich einfach ein Array erstellt, in welchem ich Strings aller Sockets (mit der .toString() Methode) ablege. Wenn ich nun an jemanden spezifisch etwas senden will vergleiche ich einfach dessen IP adresse mit der des sockets im array. wenn das zutrifft habe ich schonmal den Stringdes Socket, an welchen ich senden will.
Nun muss ich diesen nur noch mit den keys in der Hashtable vergleichen und dann an den dazugehörigen dout senden.
Tönt vielleicht ein bisschen kompliziert wenn mans nicht vor sich sieht, war aber eigentlich gar nicht so schwer :)

-Luke
 
Zurück