Java - Chat
Geizhals » Forum » Programmierung » Java - Chat (4 Beiträge, 69 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: Java - Chat
26.04.2003, 01:44:40
Beschreibung der Klasse responseThread:
Wie klar sein sollte gibt's für jeden Client ein eigenen Thread am Server. Die Klasse öffnet ein Input- und Outputstream zum kommunizieren zwischen Client und Server.
In einer while-Schleife wird ständig nach Input vom Client gefragt:
      while( !socket.isClosed() )
      {
        text = in.readLine();
        System.out.println(text);
        multiServer.msgAllClients(text, this);
      }
Die Variable 'in' ist so definiert: in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
Der Text der ankommt wird in der Konsole am Server ausgegeben und mit der Funktion msgAllClients() an alle anderen Clients geschickt (die Klasse multiServer ist statisch, und diese Funktion eine Methode von ihr, Definition: public static void msgAllClients(String Msg, responseThread excluded) )

Was mir hier Probleme bereitet ist die Laufbedingung der while-Schleife. Egal ob das Socket beim Client ordnungsmäßig geschlossen wird rennt die Schleife weiter.
Eine Lösung war auf einen bestimmten Input vom Client zu warten wie z.B. "/quit", aber da ich momentan einen Client als Applet programmiere ist das nicht mehr akzeptabel, der User kann das Browserfenster zu machen und der Thread rennt immer noch weiter. Ich kann keinen klaren Kopf mehr behalten und pfuschen will wirklich nicht.

Also wer die Güte besitzt kann sich mein Projekt durchsehen und mir eventuell helfen:
http://forum.geizhals.at/files/2009/multiServer.java
http://forum.geizhals.at/files/2009/chatClient.java
http://forum.geizhals.at/files/2009/chatClientApplet.java



Der Schmerz bindet an die Realität.
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung