estou desenvolvendo uma aplicação Cliente-Servidor que usa comunicação via bluetooth. Preciso de dois celulares conectados a um PC. O problema é que só consigo a conexão de um cliente com o servidor por vez. Tem como conectar mais de um cliente com o servidor ao mesmo tempo?
Estou usando o protocolo RFCOMM. Na documentação JSR-82 diz que:
“The SPP service can accept multiple connections from different clients by calling acceptAndOpen()”. Tentei fazer isso mas ocorre o erro: BluetoothConnectionException: timeout. Eu na verdade só consigo conectar o segundo cliente quando qualquer o primeiro desconecta.
try{din=newDataInputStream(connection.openDataInputStream());dout=newDataOutputStream(connection.openDataOutputStream());}catch(IOExceptionioe){System.err.println("Exceção ao capturar streams do cliente"+cliente);}while(true){System.err.println("Executando um cliente "+cliente);try{Thread.sleep(60000);}catch(InterruptedExceptionie){System.err.println("Exceção ao tentar dormir!");}}
}
}
Quando conecto o primeiro cliente a saída apresentada é:
Inicializando Bluetooth
BlueCove version 2.1.0 on bluesoleil
Listening…
Aguardando Conexões! 0
Cliente conectado…
Listening…
Aguardando Conexões! 1
Executando um cliente 0
Executando um cliente 0
Executando um cliente 0
…
então faço uma busca com o outro dispositivo/celular e o mesmo encontra o servidor(o que acontecia com meu programa inicial), mas quando tenta conectar é disparada a exceção BluetoothConnectionException: timeout.
Ou seja, continua dando o mesmo erro…
J
jricardo_so
No site da revista Mundo Java tem o código fonte do que vc quer, tá aí o link da edição 30 da revista http://www.mundojava.com.br/NovoSite/30codigos.shtml. Para entender melhor esse código aconselho comprar a revista.
leydsonpontes
Rapaz,
baixei a aplicação, compilei pelo netBeans com as bibliotecas que vem no projeto, executei o servidor de desktop e executei o cliente em dois celulares, consegui conectar o primeiro normalmente, enviei mensagem e tudo, mas quando tento conectar o segundo cliente dá um erro (aparece mensagem Erro! no celular ou Device not reachable!), e somente quando desconecto o primeiro cliente é que consigo conectar o segundo cliente… :s
Alguém testou esta aplicação? Se sim e se deu certo me fala a configuração do ambiente: windows vista, XP, linux … qual o dongle usb que tá usando e etc…
Teoricamente acho que meu servidor deveria funcionar normalmente aceitando várias conexões.