Se você tentar trabalhar com sockets sem entender manipulação de bits, estará morto.
o tamanho da mensagem eu pego com esse fragmento
while((x=entrada.read())!=-1){
}
porém a conexão é contínua, ou seja preciso realmente calcular os dois bytes iniciais para liberar a thread e aguardar por uma nova mensagem, se eu calculo errôneamente a aplicação fica aguardando completar a mensagem e ai pega parte da outra que é enviada.
ViniGodoy
Dê uma olhada se esse post te ilumina.
E veja também se o chat que tem no link que esse post indica te ilumina.
Esse while está errado. Com um while assim, vc irá ler dados até que o socket feche a conexão.
lucas.cs
ViniGodoy:
Dê uma olhada se esse post te ilumina.
E veja também se o chat que tem no link que esse post indica te ilumina.
Esse while está errado. Com um while assim, vc irá ler dados até que o socket feche a conexão.
obrigado pela nova dica, mais infelizmente tenho que manter a conexão ativa full time com o client, ele me envia mensagens em ISO8583 uma seguida da outra, abre a conexão em um determinado horário e fica monitorando a mesma de 5 em 5 minutos enviando mensagens de sonda.
lucas.cs
sobre a dúvida inicial de converte char para int alguém pode me ajudar?
ViniGodoy
E quem foi que falou em fechar a conexão?
Numa conexão TCP, nunca se fecha a conexão, pelo menos, não antes de uma mensagem específica para isso.
O exemplo de chat simples TCP no link que eu te passei também não fecha.
Eu só disse que você não deve ler um int dessa forma.
lucas.cs
ViniGodoy:
E quem foi que falou em fechar a conexão?
Numa conexão TCP, nunca se fecha a conexão, pelo menos, não antes de uma mensagem específica para isso.
O exemplo de chat simples TCP no link que eu te passei também não fecha.
Eu só disse que você não deve ler um int dessa forma.