Estou tendo um problema muito estranho. Quando tento rodar o meu programa ele oferece as opções modo local e modo conectado.
Se eu escolho modo conectado, aparece a mensagem que está no screen shot.
Depois disso eu posso clicar em yes ou no e nada acontece.
Alguém teve este problema também?
Mais um problema, se alguém puder ajudar eu agradeço.
Meu código:
HttpConnection conexao = (HttpConnection)Connector.open(http://eclipse.ime.usp.br:9090/batalha, Connector.READ_WRITE);
conexao.setRequestMethod(HttpConnection.POST);
os = conexao.openDataOutputStream();
is = conexao.openDataInputStream();
os.writeUTF("op=conecta");
os.flush();
String resposta = is.readUTF();
E a string resposta é :
"ERRO Nao recebi nenhuma operacao"
Meu código:
HttpConnection conexao = (HttpConnection)Connector.open(http://eclipse.ime.usp.br:9090/batalha, Connector.READ_WRITE);
conexao.setRequestMethod(HttpConnection.POST);
os = conexao.openDataOutputStream();
is = conexao.openDataInputStream();
os.writeUTF("op=conecta");
os.flush();
String resposta = is.readUTF();
E a string resposta é :
"ERRO Nao recebi nenhuma operacao"
Quanto ao problema de clicar em Yes ou No e nada acontecer: nesse momento você vai precisar fazer a comunicação numa Thread diferente. Tive esse problema também e só foi necessário rodar o método que faz a conexão ("op=conecta") em outra Thread.
Quanto ao segundo problema: li num fórum que você deve abrir o InputStream depois de ter enviado a mensagem, ou seja, depois de executar o método flush() ou getResponseCode() do OutputStream. Fiz isso e resolveu o problema.
Quanto ao segundo problema: li num fórum que você deve abrir o InputStream depois de ter enviado a mensagem, ou seja, depois de executar o método flush() ou getResponseCode() do OutputStream. Fiz isso e resolveu o problema.
Alguém ainda pode me dar uma luz ???
Eu fiz um Runnable só pra fazer as conexões e mesmo assim a thread sempre fica parada na linha do meu código:
connection = (HttpConnection) Connector.open("http://eclipse.ime.usp.br:9090/batalha", Connector.READ_WRITE);
Eu fiz um Runnable só pra fazer as conexões e mesmo assim a thread sempre fica parada na linha do meu código:
connection = (HttpConnection) Connector.open("http://eclipse.ime.usp.br:9090/batalha", Connector.READ_WRITE);
Quanto ao "Is it ok to use airtime?" no meu aparece também. Eu apenas clico em OK e o programa continua. Não sei exatamente o que é, mas parece que é apenas um aviso de que se você autorizar o programa a realizar a conexão pode haver algum tipo de "sobrecarga".
Quanto ao código, tente:
DataInputStream inputStream = conexao.openDataInputStream();
//se a conexão tiver sido OK
if (conexao.getResponseCode() == HttpConnection.HTTP_OK) {
//"OK espera" ou "OK joga"
String resp = inputStream.readUTF();
//"#id"
int id = inputStream.readInt();
}
E se não me engano, as conexões tem que ser rodadas em Threads diferentes. Se sua classe já implementa CommandListener, por exemplo, a conexão não vai rodar (acho que para evitar dead locks, pois a conexão é instável).
Quanto ao código, tente:
DataInputStream inputStream = conexao.openDataInputStream();
//se a conexão tiver sido OK
if (conexao.getResponseCode() == HttpConnection.HTTP_OK) {
//"OK espera" ou "OK joga"
String resp = inputStream.readUTF();
//"#id"
int id = inputStream.readInt();
}
E se não me engano, as conexões tem que ser rodadas em Threads diferentes. Se sua classe já implementa CommandListener, por exemplo, a conexão não vai rodar (acho que para evitar dead locks, pois a conexão é instável).
Meu código está assim:
System.out.println("Tentando conexao");
HttpConnection connection = (HttpConnection) Connector.open("http://eclipse.ime.usp.br:9090/batalha");
System.out.println("Conexao aberta");
Ele imprime "Tentando conexao" e fica parado nisso...
Nem está dando a mensagem de use Airtime...
System.out.println("Tentando conexao");
HttpConnection connection = (HttpConnection) Connector.open("http://eclipse.ime.usp.br:9090/batalha");
System.out.println("Conexao aberta");
Ele imprime "Tentando conexao" e fica parado nisso...
Nem está dando a mensagem de use Airtime...
Só pra garantir, quando for rodar seu código tente:
void teste(){
Thread t = new Thread(){
public void run(){
//seu código sendo colocado em outra Thread
System.out.println("Tentando conexao");
HttpConnection connection = (HttpConnection)Connector.open("http://eclipse.ime.usp.br:9090/batalha");
System.out.println("Conexao aberta");
}
}
//iniciando a Thread pro seu código
t.start();
}
void teste(){
Thread t = new Thread(){
public void run(){
//seu código sendo colocado em outra Thread
System.out.println("Tentando conexao");
HttpConnection connection = (HttpConnection)Connector.open("http://eclipse.ime.usp.br:9090/batalha");
System.out.println("Conexao aberta");
}
}
//iniciando a Thread pro seu código
t.start();
}
Fica parado igual, sem aparecer a mensagem de airtime...
Não faço idéia doq seja...
Não faço idéia doq seja...
tente mudar para:
try{
HttpConnection connection = (HttpConnection)Connector.open("http://eclipse.ime.usp.br:9090/batalha");
}catch (Exception e){
System.out.println("...");
}
e veja o que acontece...
try{
HttpConnection connection = (HttpConnection)Connector.open("http://eclipse.ime.usp.br:9090/batalha");
}catch (Exception e){
System.out.println("...");
}
e veja o que acontece...
Mesma coisa, pára, não joga exceção...
Se estiver logado no gmail, te mandei um convite pro chat. Daí podemos dar uma olhada nisso.
Na verdade vc deve ter mandado pra minha mascara =P
mande para vietkong@gmail.com
mande para vietkong@gmail.com
Conseguiu resolver? Como?
Eu sei q não faz diferença responder agora q a entrega já passou, mas eu não consegui resolver não...
Implementei toda a comunicação mas não consegui testar pq nunca consegue criar conexão...
Se a Mari conseguir achar o erro q tem ali, ela posta aqui pra gente ver...
Implementei toda a comunicação mas não consegui testar pq nunca consegue criar conexão...
Se a Mari conseguir achar o erro q tem ali, ela posta aqui pra gente ver...