Porque vc não coloca um Timeout na leitura pra destravar o Thread?
 
boolean pause = false;
long msTimeout  = 1000L; // 1 segundo
long msEndTime = System.currentTimeMillis() + msTimeout;
StringBuffer sb = new StringBuffer();
 
while (char c = in.read()){
 if (System.currentTimeMillis() > EndTime) {
    if  (pause)       //testa se ocorreu o evento do botão, por  exemplo.
        break;         // sai do loop; 
    else
        continue;   
 }
 else sb.append(c);
}
//admitindo que "in" seja um Reader qqr e que esteja devidamente inicializado. 
 
na minha aplicação quando dava timeout na leitura eu já parava tudo e continuava normalmente.
Na sdk 1.4 tem a package java.nio.* que eu ainda não usei, mas deve ter alguma coisa que resolva teu caso tb. 
 
Falou,
 
miagi
----- Original Message -----
Sent: Thursday, October 10, 2002 5:23 PM
Subject: [java-list] Thread - Socket Servidor !!!

Pessoal........
Como eu faria para terminar um thread que esta implementando um socket ouvinte....(servidor)
Eu pensei em variável compartilhada mas o thread ficará parado no accept() e não iria dar certo.
 
-----------------------------------------------------------------
Ex:
ServerSocket skServer;
...
...
new ThreadServerChild(skServer.accept()).start();    // O Thread vai ficar parado aqui, ouvindo em uma porta
-----------------------------------------------------------------
Obs: ThreadServerChild é um outro thread que cuidará da conexão para que o servidor possa ser multi-thread !!!
 
Como eu faço para terminar este Thread(Servidor) através de um clique de mouse por exemplo ?
Qual a melhor saída ?
 
Obrigado
 

Responder a