# Implementation Chatserver



## johnl (27. Apr 2010)

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


```
chatserver newserver = new chatserver(4850);
newserver.startserver();
```

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

Grüße

John


----------



## Murray (28. Apr 2010)

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.


----------



## johnl (28. Apr 2010)

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 (28. Apr 2010)

An der Stelle, wo du jetzt startserver() aufrufst, könntest du z.B. folgenden Code einsetzen:

```
new Thread( new Runnable(){
  public void run() {
    startserver();
  }
}).start();
```


----------



## L-ectron-X (30. Apr 2010)

Zum Thema bitte auch noch mal die FAQ besuchen.


----------

