Witam
Zastanawiam się czy jest to poprawne rozwiązanie i czy są może inne.
W wątku mam nasłuchiwanie podłączających się aplikacji klienckich do socketu serwera. W zasadzie chodzi o to zeby zlapac tylko jednego (pierwszego). W przypadku kiedy na tym porcie otwarty jest już inny socket serwera występuje wyjątek, w którym zmieniam port. oraz wywołuję jeszcze raz metodę run(). Czy takie rozwiązanie jest poprawne, oraz czy wywołana przeze mnie w ten sposób metoda (nie przez: watek.start()) zadziała poprawnie jako wątek, a nie jako zwykła funkcja?
class myThread extends Thread{
...
public void run() {
try {
this.socketServer = new ServerSocket(this.port);
while (listening) {
Socket socket = this.socketServer.accept();
...
listening = false;
}
}
}
catch (Exception e) {
listening = true;
this.port +=2;
run(); //<---- sedno sprawy
}
}