Sim e exatamente isso que voce falou e funciona tb para o readObject, pois essa fun��o eh do Socket. O ping tem que ser feito na m�o mesmo, atrav�s do seu pr�prio protocolo. Ent�o quando a exce��o � levantada eu envio alguma coisa pro cliente e fico esperando a resposta... Se n�o recebo em tantos segundos assumo que o cara morreu e fecho o socket. Se n�o morreu volto pro in.readLine(). Infelizmente n�o h� nenhuma fun��o do socket do tipo socket.estouVivoeValido(). Se tivesse iria facilitar bastante as coisas. []'s Sergio Sun Certified Java Programmer Consultor Java >From: Sergio - InfoSa�de RS <[EMAIL PROTECTED]> >To: "'Sergio Oliveira Jr.'" <[EMAIL PROTECTED]> >Subject: RES: RES: [java-list] in.readLine() n�o retorna !!! >Date: Mon, 11 Jun 2001 11:09:40 -0300 > >Mas o que exatamente o m�todo setSoTimeout faz ??? >Ele fica contado o tempo que passamos por par�metro pra ele e se o >in.readLine() n�o receber nada atrav�s do Stream e o tempo especificado >acabar ele levanta uma exce��o ??? >Como que tu executa um ping do Client no server ??? Tem algum m�todo >espec�fico do socket que faz isso ??? >Se funciona pro readLine deve funcionar tamb�m pro readObject, certo ?? > >-----Mensagem original----- >De: Sergio Oliveira Jr. [mailto:[EMAIL PROTECTED]] >Enviada em: segunda-feira, 11 de junho de 2001 09:34 >Para: [EMAIL PROTECTED] >Cc: [EMAIL PROTECTED] >Assunto: Re: RES: [java-list] in.readLine() n�o retorna !!! > > > >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. _________________________________________________________________________ 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] -------------------------------------------------------------------------
