# ein Thread pro Stream



## komplexor (6. Mai 2011)

Hallo,

habe bereits im Forum gesucht, aber nicht das passende gefunden. Ich möchte gerne mehrer Streams gleichzeitig empfangen, bzw. auf eingehende Streams lauschen. Dazu soll immer eine SocketConnection mit dem endprechenden Port für den Stream in einem eigenen Thread starten.
Hatte mir gedacht die Threads mittels einer for-schleife erzeugen zulassen, bei dem die zu inkrementierende Variable den Port darstellt.
Wie kann ich das realisieren. Füge mal mein bisheriges Projekt an und hoffe auf unterstützung

```
public class EpochLog {
	private String host = "192.168.0.135";

	public EpochAndSatLog(){
		
		while (!Thread.currentThread().isAlive()) {

			for (int i=33333; i<=33339; i++) {
				new SocketConnection(host, i);
			}
		}
	}
```


```
public class SocketConnection extends Thread {
	private Socket socket;

	public SocketConnection(String pHost, int pPort) {
		this.host = pHost;
		this.port = pPort;
                start();
	}

	@Override
	public void run() {
		try {
			socket = new Socket(host, port);
			readStream(socket);
		} catch (IOException e) {
			System.err.println("Fehler in connectSocket, Host " + host
					+ " oder Port " + port + " nicht gefunden");
			return;
		}
	}
        public void readStream(Socket s) {
             bla...bla...
        }
}
```


----------



## SlaterB (6. Mai 2011)

die Kombination Thread.currentThread().isAlive() dürfte nie Sinn machen,
wenn ein Thread selber gerade Code ausführt, ist er immer noch alive, 
nur bei anderen Thread-Objekten lohnt es sich, danach zu fragen

eine richtige Frage von dir wird auch nicht unbedingt klar, geht es allgemein um das Handling mehrerer Clients auf einem Server?
http://www.java-forum.org/java-basics-anfaenger-themen/117379-mehrere-clients-server.html

obwohl, du startest ja eher mehrere Clients, die je für sich einen Socket aufmachen, sieht gar nicht so schlecht aus,
funktioniert etwas nicht?


----------



## komplexor (6. Mai 2011)

> die Kombination Thread.currentThread().isAlive() dürfte nie Sinn machen,


das ist mir auch bereits aufgefallen, das es nichts bringt.



> funktioniert etwas nicht?


jetzt funktioniert es, kann nicht wirklich sagen was ich getan habe, aber jetzt lauscht er an allen ports und verarbeitet die ankommenden Streams.

Danke trotzdem.


----------

