Funcionou sim, mas tive que fazer com que o cliente d� um ping de tempos em tempos no servidor, para evitar um timeout do in.readLine() causado por longos per�odos de inatividade do cliente. Uma coisa � o cliente sumir, outra � ele ficar muito tempo inativo. Ent�o ficou assim: timeout de 10 minutos para o in.readLine(); ping de 4 em 4 minutos do cliente para colocar o in.readLine() para funcionar. []'s Sergio Sun Cerfied Java Programmer Consultor Independente Jav >From: Sergio - InfoSa�de RS <[EMAIL PROTECTED]> >To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> >Subject: RES: [java-list] in.readLine() n�o retorna !!! >Date: Mon, 11 Jun 2001 09:21:30 -0300 > >E a� cara ???? Funcionou ??? Te pergunto isso pq estou desenvolvendo uma >aplica��o que vai passar por este mesmo problema .... > >-----Mensagem original----- >De: Sergio Oliveira Jr. [mailto:[EMAIL PROTECTED]] >Enviada em: s�bado, 9 de junho de 2001 13:22 >Para: [EMAIL PROTECTED] >Assunto: Re: [java-list] in.readLine() n�o retorna !!! > > > >Acho que a resposta estava na minha frente e eu n�o vi: > >socket.setSoTimeout(). > >Vou testar e ver se funciona! > >[]'s > >Sergio > > >From: "Sergio Oliveira Jr." <[EMAIL PROTECTED]> > >Reply-To: [EMAIL PROTECTED] > >To: [EMAIL PROTECTED] > >Subject: [java-list] in.readLine() n�o retorna !!! > >Date: Sat, 09 Jun 2001 14:10:36 -0000 > > > >Tenho um servidor Java que escuta numa porta via um ServerSocket e abre >um > >Thread para cada requisi��o que ele recebe. Esse Thread recebe o socket e > >abre um BufferedReader (in) e um PrintStream (out) para se comunicar com >o > >cliente. > > > >O problema � o seguinte: > > > >Alguns in.readLine() fica bloqueados para sempre, ou seja, nunca >retornam. > > > >J� andei investigando e descobri que temos que usar > >socket.setKeepAlive(true), para o TCPIP checar periodicamente se o socket > >est� vivo ou se o cliente desapareceu silenciosamente. (Como experi�ncia, > >conecte duas m�quinas via um socket e desligue o cabo de rede de uma >delas. > >A outra vai ficar travada num in.readLine() eternamente se voc� n�o >estiver > >usando o KeepAlive!) > > > >Tb temos que setar o parametro KeepAliveTime no registry do windows, que >o > >intervalo em milisegundos que o Windows vai dar um ping no Socket para > >saber > >se ele ainda est� vivo. Se esse parametro n�o estiver presente no >Registry, > >ele assume como default 2 horas! > > > >O problema � que mesmo fazendo esse esquema do KeepAliveTime, estou > >desconfiado que alguns threads continuam travados para sempre no > >in.readLine(), o que est� fazendo com que o meu servidor trave uma vez a > >cada duas semanas por excesso de threads! > > > >Algu�m j� passou por problema semelhante? Tem como for�ar um retorno de >um > >in.readLine() travado ? Se tiver acho ent�o que a solu��o poderia ser um > >thread monitor para matar os threads que est�o travados a muito tempo. > > > >[]'s > > > >Sergio Oliveira Jr. > >Sun Cerfied Java Programmer > >Consultor Java > > > > > > > > > > > > > > > > > > > >_________________________________________________________________________ > >Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. > > > > > >------------------------------ LISTA SOUJAVA ---------------------------- > >http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP > >d�vidas mais comuns: http://www.soujava.org.br/faq.htm > >regras da lista: http://www.soujava.org.br/regras.htm > >para sair da lista: envie email para [EMAIL PROTECTED] > >------------------------------------------------------------------------- > > > >_________________________________________________________________________ >Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. > > >------------------------------ LISTA SOUJAVA ---------------------------- >http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP >d�vidas mais comuns: http://www.soujava.org.br/faq.htm >regras da lista: http://www.soujava.org.br/regras.htm >para sair da lista: envie email para [EMAIL PROTECTED] >------------------------------------------------------------------------- _________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP d�vidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------
