| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 08:39:35
|
vcsmetallica
JavaEvangelist
![[Avatar]](/images/avatar/46289f543de88e17a84f7014fc172c49.jpg)
Membro desde: 18/06/2008 14:22:41
Mensagens: 479
Localização: Belo Horizonte
Offline
|
Salve Galera!
Estou com o seguinte problema:
Tenho varios equipamentos de rastreamento, estou desenvolvendo um servidor usando socketserver ate ai blza.
O cenario ideal de funcionamento é o seguinte:
Equipamento conecta no meu servidor
Equipamento me manda string de validação
servidor valida equipamento e manda uma @
equipamento começa o ciclo para enviar informação de 3 em 3 minutos
O que esta acontecendo,
Quando o equipamento conecta com o meu servidor e peço para buscar a string da validação esta demorando muito até ocorrer o timeout, ai vem para mim todas as informaçoes do equipamento e a conexao como equipamento é derrubada.
Por exemplo
Se o meu timeout for de 30 minutos, o equipamento vai acumulando os dados dentro dele e quando for para a conexao terminar ele me manda as informações.
Ja tentei de tudo para sanar isso e nao estou conseguindo.
Alguem tem alguma ideia do que pode estar acontecendo?
Att
This message was edited 1 time. Last update was at 07/07/2011 15:51:19
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 08:56:52
|
ualex
JavaGuru
Membro desde: 26/08/2004 18:45:26
Mensagens: 229
Offline
|
não entendi muito bem, mas o que entendi a demora esta na validação da String de validação, certo ? teria que verificar isso pq esta demorando tanto essa validação, é uma consulta no banco algo assim?
|
http://www.alexflorentino.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 09:00:23
|
vcsmetallica
JavaEvangelist
![[Avatar]](/images/avatar/46289f543de88e17a84f7014fc172c49.jpg)
Membro desde: 18/06/2008 14:22:41
Mensagens: 479
Localização: Belo Horizonte
Offline
|
O que esta demorando muito é a String que vem do equipamento. O retorno do equipamento é que esta demorando muito.
Fiz os testes usando C# e o retorno do equipamento veio rapidinho, ja em java esta demorando muito.
Att
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 09:04:56
|
ualex
JavaGuru
Membro desde: 26/08/2004 18:45:26
Mensagens: 229
Offline
|
estranho... em java vc colocar server socket no ar em uma porta, quando recebi uma nova conexão vc da um "socketClient.getInputStream()" e pronto vc ja tem os dados em byte, normalmente é bem rapido... essa string é muito grande como vc esta tratando ela?
|
http://www.alexflorentino.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 09:07:54
|
vcsmetallica
JavaEvangelist
![[Avatar]](/images/avatar/46289f543de88e17a84f7014fc172c49.jpg)
Membro desde: 18/06/2008 14:22:41
Mensagens: 479
Localização: Belo Horizonte
Offline
|
Nao. essa string tem 26 caracteres.
andei pesquisando algumas coisas, acho que o equipamento trabalha com raw socket um negocio assim.
Esta muito estranho mesmo.
Att
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 09:17:47
|
andre.henriques
What is classpath?
![[Avatar]](/images/avatar/20e65e42aa38f5fa37462d3741fa6a3a.jpeg)
Membro desde: 21/06/2011 08:18:36
Mensagens: 9
Localização: Camaragibe
Offline
|
Olá vcsmetallica,
isso tem cara que o servidor fica lendo infinitamente, até que uma exceção é gerada e ele pare de ler e envia tudo ao mesmo tempo.
[claro que é isso, rsrsrsrsrs]
para isso vc tem que definir o final da string enviado para o servidor, o servidor deve parar de ler ao chegar no final dessa string.
eu fiz um server que o final do profocolo é uma linha em branco
cliente envia "blabalbal"
cliente envie "";
server ler equanto a leitura da linha for diferente de vazia
ao ser finalizado o server pode tratar os dados que foram enviado do cliente.
|
André Henriques
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 09:36:35
|
vcsmetallica
JavaEvangelist
![[Avatar]](/images/avatar/46289f543de88e17a84f7014fc172c49.jpg)
Membro desde: 18/06/2008 14:22:41
Mensagens: 479
Localização: Belo Horizonte
Offline
|
Obrigado pela dica.
Vou tentar fazer isso que vc indicou.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 09:37:46
|
ualex
JavaGuru
Membro desde: 26/08/2004 18:45:26
Mensagens: 229
Offline
|
vcsmetallica wrote:Nao. essa string tem 26 caracteres.
andei pesquisando algumas coisas, acho que o equipamento trabalha com raw socket um negocio assim.
Esta muito estranho mesmo.
Att
então eu tenho o servidor socket na minha aplicação e eu leio os dados assim:
sempre funcionou perfeitamente... agora preciso saber como vc faz...
|
http://www.alexflorentino.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/06/2011 09:49:03
|
andre.henriques
What is classpath?
![[Avatar]](/images/avatar/20e65e42aa38f5fa37462d3741fa6a3a.jpeg)
Membro desde: 21/06/2011 08:18:36
Mensagens: 9
Localização: Camaragibe
Offline
|
olá vcsmetallic,
dá uma olha como eu faço,
Em meu caso funciona, pois o cliente envia uma linha em branco para definir o final da mensagem,
vc deve verificar qual é o 'finalizador' do seu protoloco. poderia ser uma linha com 'EOS' ou qualque outra coisa...
|
André Henriques
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2011 15:50:56
|
vcsmetallica
JavaEvangelist
![[Avatar]](/images/avatar/46289f543de88e17a84f7014fc172c49.jpg)
Membro desde: 18/06/2008 14:22:41
Mensagens: 479
Localização: Belo Horizonte
Offline
|
Contar para vcs como que eu resolvi o problema. Depois de ter feito o raio da aplicação em C# tomando uma surra violenta desse tal de C# so pq o servidor socket estava demorando para me responder.
Desse jeito é quase que instantaneo.
|
|
|
 |
|
|