Bom dia pessoal !!
Estou aqui mais uma vez para pedir o auxílio de vocês(Quem sabe um dia se eu ficar bom em Java o quanto eu sou em .Net eu começe a ajudar também) para uma coisa que é mais uma dúvida do que um problema.
Estou fazendo um aplicativo Cliente-Servidor usando Java no Servidor e é óbvio o Cliente é J2ME. Já escrevi muitas aplicações Cliente-Servidor em .Net, e me deparei com uma situação interessante: o J2ME não mantém a conexão aberta para Inputs e OutPuts.
Em todos os exemplos que eu achei, eu tenho que criar a conexão atravéz do Helper Connector, abrir o Input e OutPut, postar o que quiser mandar para o servidor no Output e ficar esperando com um while no Input até que toda a informação vinda do servidor seja descarregada.
Depois disso se eu tentar abrir um novo Input ou OutPut em cima da conexão aberta ele dá erro, dizendo que não há mais Outputs disponíveis. Para funcionar, eu tenho que fechar tudo que foi aberto(Input, Output, Conexão) e abrir tudo de novo. A idéia que segui é básicamente como estas:
http://www.java-samples.com/showtutorial.php?tutorialid=738
http://www.java-samples.com/j2me/socket-connection-free-j2me-sample-program.htm
A minha dúvida é: Eu não consigo manter esse tunel aberto? para cada vez que eu quiser alguma coisa do servidor, o Cliente é que tem que requisitar? Eu sei que dá pra fazer fila de mensagens, e a cada requisição a fila é transferida, etc. mas eu estou achando que isso vai consumir recursos que um aparelho real(descartando o emulador) não possui.
Obrigado pela atenção.