PEASANT KING
Commander
- Registriert
- Okt. 2008
- Beiträge
- 2.412
Hallo Leute,
ich bin dabei mir meine Multi Client Server Anwendung zu programmieren, klappt auch ganz gut.
Nun bin ich dennoch auf ein Problem gestoßen, das ich nicht wirklich weiß zu beheben.
Hier mal meine Run Methode aus der Klasse AnyConnectServer
Was ich möchte ist, das jedes mal wenn ein Client versucht sich zu verbinden die Run Methode automatisch gestartet wird.
Zur Zeit muss ich die Run Methode immer manuell aufrufen, was natürlich totaler Blödsinn ist.
So kann sich beim ersten Start der Run Methode 1 Client verbinden beim zweiten Start 2 usw. das ist aber nicht so gewollt. Es sollen sich so viele anmelden können wie mein Array begrenzt und zwar sofort und nicht nach jedes Mal starten der Methode.
Ich habe mir beholfen indem ich ne For Schleife benutzt habe im Aufruf
Das ist allerdings sehr unperformant und denke ich absolut Quark.
Kann mir Jemand helfen ? Ich kann auch gerne Sources rausgeben, es sei angemerkt das es nur ein Hobby Projekt ist.
ich bin dabei mir meine Multi Client Server Anwendung zu programmieren, klappt auch ganz gut.
Nun bin ich dennoch auf ein Problem gestoßen, das ich nicht wirklich weiß zu beheben.
Hier mal meine Run Methode aus der Klasse AnyConnectServer
Code:
public class AnyConnectServer implements Runnable {
public void run() {
synchronized (this) {
this.runningThread = Thread.currentThread();
}
System.out.println(runningThread);
while (!isStopped()) {
try {
addThreadArray(serverSocket.accept());
console.printMessage("Eingehende Verbindung!");
} catch (IOException e) {
if (isStopped()) {
console.printMessage("Service wurde gestoppt " + e);
}
console.printError("Fehler Clientverbindung!");
}
}
}
}
Was ich möchte ist, das jedes mal wenn ein Client versucht sich zu verbinden die Run Methode automatisch gestartet wird.
Zur Zeit muss ich die Run Methode immer manuell aufrufen, was natürlich totaler Blödsinn ist.
So kann sich beim ersten Start der Run Methode 1 Client verbinden beim zweiten Start 2 usw. das ist aber nicht so gewollt. Es sollen sich so viele anmelden können wie mein Array begrenzt und zwar sofort und nicht nach jedes Mal starten der Methode.
Ich habe mir beholfen indem ich ne For Schleife benutzt habe im Aufruf
Code:
private class StartServer implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < 1000; i++) {
new Thread(new Runnable() {
@Override
public void run() {
server.run();
}
}).start();
}
}
}
Das ist allerdings sehr unperformant und denke ich absolut Quark.
Kann mir Jemand helfen ? Ich kann auch gerne Sources rausgeben, es sei angemerkt das es nur ein Hobby Projekt ist.