# Socket#getInputStream() immer der gleiche oder nicht?



## VdA (16. Mrz 2008)

Hi Ich steh immer noch auf dem Schlauch wegen dieser Sache.

Hab mir aber einen anderen Lösungsansatz überlegt:

einfach mehrmals an einem Socket getIn/OutputStream() aufrufen.
Ich hab das testweise mal gemacht:

```
BufferedWriter writer1=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
			BufferedWriter writer2=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
			
			writer1.write("hallo1\n");
			writer2.write("hallo2\n");
			
			writer1.write("hallo1\n");
			writer2.write("hallo2\n");
			
			writer1.close();
			writer2.close();
```


```
BufferedReader reader1=new BufferedReader(new InputStreamReader(client.getInputStream()));
		BufferedReader reader2=new BufferedReader(new InputStreamReader(client.getInputStream()));
		
		System.out.println("reader1: "+reader1.readLine());
		System.out.println("reader2: "+reader2.readLine());
		
		System.out.println("reader1: "+reader1.readLine());
		System.out.println("reader2: "+reader2.readLine());
		
		reader1.close();
		reader2.close();
```

Doch kommt bei dem 2. reader immer null an.

Nun meine Frage:
Hab ich da was falsch Proggrammiert oder kann das so gar nicht gehen?


----------



## SlaterB (17. Mrz 2008)

ein BufferedReader ist sehr gierig, wenn da 2 oder 4 Zeilen in Stream stehen dann liest der gleiche alle 4 aus und buffert sie bei ersten readLine();
da bleibt für reader2 nix über


----------



## VdA (17. Mrz 2008)

das heißt es sind beides die gleichen streams?


----------



## SlaterB (18. Mrz 2008)

ne, das heißt das was ich sage: reader1 enthält alle 4 Zeilen und reader2 gar keinen,

falls du darauf anspielst, ob die beiden OutputStreams automatisch zu zwei InputStreams beim Empfänger zerfallen sollen:
dazu kann ich nix sagen, kann ich mir aber pauschal nicht vorstellen


----------



## VdA (20. Mrz 2008)

hmm das ist ätzend.
Naja vlt hat ja jemand noch einen ganz anderen Lösungsansatz zu dem Problem

[Closed]


----------

