Ola pessoal, estou desenvolvendo uma aplicação que precisa acessar um servidor via telnet, para isto estou utilizando um cliente telnet da apache, que encapsula as requisições via socket.
Depois de enviar a requisição, a reposta esta sendo pega da seguinte maneira:
while (!done) {
if (System.currentTimeMillis() >= finalTime) {
throw new SocketTimeoutException();
}
if (this.inputStreamReader.ready()) {
len = this.inputStreamReader.read(charsFromCAI);
dataFromCAI.append(new String(charsFromCAI, 0, len));
if (dataFromCAI.toString().indexOf(finalDelimiter) >= 0) {
done = true;
}
}
}
onde o inputStreamReader é um InputStreamReader que foi instanciado atrazer do inputStream do socket.
O problema e que quando existe um timeout, o while fica rodando e rodando consumindo todo processamento da maquina
Alguem saberia como me apontar uma forma de resvolver este problema?
(o consumo de maquina no timeout)
(ps: to pensando em dar um sleep na thread main quando não entrar no if, so que isto é muito POG)