# Multi-chat Problem



## bob007 (26. Feb 2005)

also eingentlich sind es 2 Probleme: 


das 1te:


im buch "javainsel", das hier auch häufig empfohlen wird, steht, dass die accept()-methode meist in einem thread und in einer endlosschleife verpackt ist. aber irgendwie bin ich zu dumm das ganze in die praxis umzusetzten


das 2te:


das übermitteln von neuen mitteilungen hab ich sehr unsauber gelöst:
dies wird jeder sekunde ausgeführ:

client -> server: neue nachrichten?
server -> client: ja, 5.
client -> server: nachricht 1?
server -> client: blablabla
.
.
.

hat jemand ne idee wie man den server dazu bringen könnte automatisch nach dem empfang neuer nachrichten dazu bringen kann, die nachricht an alle clienten zuschicken?

danke für euer hilfe.


----------



## Tobias (27. Feb 2005)

Guckst du hier:

http://www.java-forum.org/de/viewtopic.php?t=3569&highlight=listener

mpG
Tobias


----------



## Illuvatar (27. Feb 2005)

Das erste hängt mit dem zweiten zusammen. Du benötigst eben diesen Thread, der ständig neue Clients empfängt. Der sieht normal in etwa so aus:

```
new Thread(){
  public void run()
  {
    clients.add (serverSocket.accept());
  }
}.start();
```
Die accept-Methode liefert einen Socket zurück, über den du mit dem Client kommunizieren kannst. Dafür brauchst du dann eben einen Vector<Socket> clients.
Wenn du an alle eine Nachricht schicken willst, gehst du den Vector durch, holst dir von jedem den OutputStream und sendest die Nachricht.


----------



## bob007 (27. Feb 2005)

> Wenn du an alle eine Nachricht schicken willst, *gehst du den Vector durch*, holst dir von jedem den OutputStream und sendest die Nachricht.



ich hab leider noch nie mit Vectoren gearbeitet. könnte mir einer sagen wie das geht?


----------

