Socket+Thread+Sleep

3 respostas
W

Criei uma Thread do tipo socket para estabelecer conexões entre Cliente e Servidor, funciona direito mas preciso dar um sleep() nessa thread caso a conexão esteja indisponivel naquele momento, pra tentar mais tarde abrir uma nova conexão. O problema é que quando a conexão falha ele direciona o erro pra o try catch e não me permite dar um sleep nessa thread. Agradeço se alguem tiver uma solução…ja tentei varias coisas (metodo this.wait()) por exemplo, mas ele nao aguarda e tenta abrir a conexao de novo.

Atenciosamente,

Wagner Lucca (sisinfo 4º ano- UMC / Projeto Final de Curso)

3 Respostas

ViniGodoy

Não existe thread "do tipo socket". Threads não são classes, nem objetos. Threads são linhas de execução que podem ser controladas por objetos e blocos de sincronização.

Bom, quando você não se conecta, o java te avisa isso lançando uma exceção, certo? Então, basta fazer algo como:

Socket s = null;

while (s == null) {
   try {
        s = new Socket(address, port);
   } catch (IOException e) {
      try {
         Thread.sleep(3000);  //Vamos esperar um pouco até tentar novamente.
      } catch (InterruptedException e) {}
   }
}
W

Primeiramente, eu me expressei mal, deu a entender que eu tinha criado uma Thread do tipo socket, sendo que Thread é um processo e socket é outra coisa totalemente diferente. No entanto a explicação foi de grande valia, solucionando o meu problema…ja estava a mais de duas semanas procurando a solução, isto estava me preoculpando pois meu cronograma do Projeto Final de Curso estava correndo o risco de ficar atrasado. Agradeço a ajuda do Sr. ViniGodoy e a todos do GUJ que contribuem para sanar as dúvidas do programadores que estão desvendando o potencial do Java.

Mais uma vez obrigado…

Atte.

Wagner Lucca (Sisinfo 4º ano - UMC / SP)

ViniGodoy

Olá Wagner.

Acho que não precisa me tratar por senhor, talvez “grande mestre” seja mais adequado. :lol: Ou pode só me chamar de Vinícius mesmo.

Que bom que conseguiu resolver o seu problema. Sempre que tiver dúvida, posta aqui que a gente te ajuda a resolver. Principalmente agora, com pressão de cronograma.

Trabalho final é fogo, a gente fica cansado e a cabeça para de funcionar direito.

Criado 28 de março de 2007
Ultima resposta 29 de mar. de 2007
Respostas 3
Participantes 2