# eine BufferedReader für alles ankommende



## PrinzMartin (13. Okt 2007)

Moin Moin

ich habe einen Server, der beinahe wunderbar funktioniert...

ich hätte es jetzt nur gerne so, dass er, sobald von einem Client eine Nachricht kommt, diese an alles Sendet.... 

das Senden klappt nur das warten bereitet noch probleme hier mal der Code:


```
public void read()
 {
     try
         {
            System.out.println("warte");
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            while (!in.ready()) {}
            System.out.println("empfangen");
            send();
     }  catch  (IOException e)
    {

    }
}
```


sooo ich denke, dass ich weiß wo das Problem lieg. dadurch, dass der sich ja einen Input Stream holt der an das socket Objekt gebunden ist, welches ja für jeden Client anders ist, wartet der so nur auf einen Client in diesem Falle sogar gar keinen da socket noch undefiniert ist (ich hab alle sockets in ner liste...)

kann ich jetzt irgendwie abfragen ob irgend etwas von irgend einem socket kommt? Ich wüsste grad nicht wie (Anfänger)

Das ist mein erster Server naja es gibt so einige Probleme  :wink: 

ich hoffe es gibt da ne gute Lösung 

grazie in anticipo


EEEDDDIIITTT:

naja so ganz scheint es daran nicht zu liegen sondern eher am


```
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
```

das wirft nämlich eine Exception vllt weil socket noch [unconnected] ist....

aber ich weiß halt nicht wie ich lauschen soll ob von irgendwo ne nachricht kommt   

Mein ganzes Konzept ist also nicht soooooooooooooooo toll  :bahnhof:  ich les noch ein 2. mal die chat beisiele hier vllt hilft mir das ja...


----------



## PrinzMartin (14. Okt 2007)

ich habe jetzt eine Idee wie ich es lösen kann, dazu muss ich aber mal eine Frage stellen bei der ich gerade nicht ganz durchblicke^^

wenn ich eine neue Instanz einer Klasse erzeuge, dann sind ja alle variablen ich sag mal im Ursprungszustand oder?

wenn ich also eine klasse a habe und darin eine integer variable i = 0; und ich erstelle eine instanz der klasse, setze i = 2; und erzeuge dann noch eine instanz, dann ist in dieser instanz doch i wieder = 0 oder?


Wenn ich aber die Variable immer als Parameter mit übergebe, dann kann ich doch egal in welcher klasse ich die Variable änder in allen anderen Klassen die veränderung sehen oder?

So hab ich das verstanden ich hoffe das ist richtig ;-)


----------



## Murray (14. Okt 2007)

Wenn du in einer Klasse eine Variable hast, die in allen Instanzen der Klassen immer den gleichen Wert haben soll, dann mch sie doch zu einer Klassenvariablen (also als "static" deklarieren).


----------

