Implementation Chatserver

J

johnl

Gast
Hallo, ich versuche, einen Chatserver zu implementieren. Der Code der dazugehörigen Klasse findet sich auf Java ##java pastebin - collaborative debugging tool , wobei ich dort die relevante Stelle hervorgehoben habe. Hier wird eine beabsichtigte Endlosschleife erzeugt. Leider hängt sich das ganze Programm aber danach auf - das Fenster friert ein, ich kanns nur noch über den Task Manager beenden. Aufgerufen wird das Ganze mit

Java:
chatserver newserver = new chatserver(4850);
newserver.startserver();

Hat jemand eine Idee, wo das Problem liegen könnte?

Grüße

John
 

Murray

Top Contributor
Das dürfte an der - von dir ja schon beobachteten - Endlosschleife liegen; startserver() "hängt" in der accept-Methode, bis ein Request ankommt. Danach wird ein Chatthread erzeugt und gestartet, woraufhin starserver in der Accept-Methode auf den nächsten Client wartet.

Die startserver-Methode stellt also den Accept-Thread des Servers dar und müsste dementsprechend in einer Desktop-Anwendung immer in einem eigenen Thread im Hintergrund laufen.
 
J

johnl

Gast
Hallo Murray, danke für deine Antwort. Ich verstehe leider nicht ganz, wie ich das jetzt beheben kann. Was soll ich mit startserver() machen? Kannst du mir diesbezüglich vielleicht nochmal kurz auf die Sprünge helfen?

Danke!
 

Murray

Top Contributor
An der Stelle, wo du jetzt startserver() aufrufst, könntest du z.B. folgenden Code einsetzen:
Java:
new Thread( new Runnable(){
  public void run() {
    startserver();
  }
}).start();
 

Ähnliche Java Themen

Neue Themen


Oben