# Blockieren beim Öffnen der In und Outputstreams



## Grinarn (29. Jun 2008)

Moin Moin,

ich habe ein Problem beim Öffnen der Streams zwischen meinem Client und meinem Server.

Mein Server wartet auf einen Connect und startet dann einen Thread, der die Anfragen bearbeiten soll.
Mein Client stellt die Verbindung auf Knopfdruck her.

Ich warte also in meinem Serverthread auf die Streams die initalisiert werden sollen: 

```
System.out.println("Vor der Initalisierung");
			in = new ObjectInputStream(new BufferedInputStream(this.client.getInputStream()));
			System.out.println("In Stream offen");
			out = new ObjectOutputStream(new BufferedOutputStream(this.client.getOutputStream()));
			System.out.println("Beide offen");
```

Sobald sich der Client connected sollen die Streams geöffnet werden:

```
this.conn = new Socket("localhost", ZooServer.PORT);
		if (conn.isConnected()) {
			this.out = new ObjectOutputStream(new BufferedOutputStream(this.conn.getOutputStream()));
			this.in = new ObjectInputStream(new BufferedInputStream(this.conn.getInputStream()));
			return true;
		}
```

Beim Verbinden bleibt der Server nun beim ersten Stream hängen, also beim ObjectInputStream.
Der Client bleibt hingegen beim beim zweiten stehen. Also auch beim InputStream.

Ich hab auch schon den Thread weiter unten gelesen, in dem gesagt wird, er hätte nur die Reihenfolge tauschen sollen, aber ich hab glaube ich schon alle Reihenfolge durch und würde außerdem gern verstehen, warum dies so ist.

Hoffentlich kann mir hier jmd. helfen bevor ich komplett durchdrehe.

Schöne Grüße
Grinarn


----------



## FArt (30. Jun 2008)

Man sieht nicht wirlich was passiert. Beschreibung und Code reichen nicht aus.

Poste ein kleines Programm (Client und Server), welches das Problem isoliert. Poste *nicht* deinen Programmcode.

Wenn du das Handling mit den Threads richtig machst, dann könnte es noch sein, der der Buffer einfach nicht voll genug ist, und der Sender sich noch nicht bemüßigt dazu fühlt, auch wirklich zu senden. Ein flush() würde hier Wunder wirken.


----------



## Grinarn (30. Jun 2008)

Ja, es war genau das Problem mit dem Buffer. Das hab ich dann auch 2 Stunden nach dem Posting herausgefunden. Also ein flush war des rätsels lösung.
Gruß Grinarn


----------

