É o seguinte.
Estou precisando desenvolver uma aplicação que utilize alguma API de rede em android.
Alguém me sugere uma boa?
Seria mais ou menos assim, dois celulares participando da mesma aplicação.
Mais ou menos como Counter Strike, onde se tinha vários computadores ligados em rede.
Isso é possível?
Não sei se é possivel utilizar Wi-fi desse modo, seria interessante também.
V
vasco.fred
Mas a questão do bluetooth não peca na hora da velocidade e números de conexões simultâneas?
Me falaram sockets.
Sera que rola?
o que acha melhor?
rafaelviny
JSR 82
já chato pacas usar ela :S
V
vasco.fred
Essa JSR-82 suportam até quantos dispositivos?
Sabe dizer?
rafaelviny
se for bluetooth o limite pelo que sei é 7 (limitação do próprio protocolo)
V
vasco.fred
A minha aplicação eu necessito mais do que 7 pessoas.
Alguma outra sugestão?
P
PoneyMan
rafaelviny:
JSR 82
já chato pacas usar ela :S
Não responda errado. JSR 82 em nada tem a ver com o Android.
P
PoneyMan
em J2ME é possível conhecer os limites e características da implementação Bluetooth do aparelho usando chamadas a System.getProperty.
P
PoneyMan
vasco.fred:
A minha aplicação eu necessito mais do que 7 pessoas.
Alguma outra sugestão?
Monte um servidor (aplicação desktop) que manténha múltiplas conexões sockets ativas e vá coordenando esta troca de dados entre os participantes.
O número de participantes ao mesmo tempo vai ser da casa dos milhares usando esta abordagem.
rafaelviny
desculpa, nao vi que era para android
V
vasco.fred
Então quer dizer que eu só posso fazer com bluetooth?
pq a ideia é naão ter conexão a internet.
ainda estou um pouco sem entender pq basicamente seria meio que se tivessem duas pessoas em duas salas distintas, as mesmas pudessem acessar o aplicativo sem conectar a internet. entendeu?
P
PoneyMan
vasco.fred:
Então quer dizer que eu só posso fazer com bluetooth?
pq a ideia é naão ter conexão a internet.
ainda estou um pouco sem entender pq basicamente seria meio que se tivessem duas pessoas em duas salas distintas, as mesmas pudessem acessar o aplicativo sem conectar a internet. entendeu?
Sem internet a única opção é com Bluetooth e obedecendo as limitações do cliente/server.
Agora faça um favor e estude as topologias de rede pois elas poderão permitir que você permita a comunicação com muito mais que 7 usuários ao mesmo tempo.
Dica: Piconet e Scatternet
Wi-Fi não entra no que vc precisaria pois dependeria de um roteador sem fio. Para quem não quer depender de Internet, tb não vai querer depender de roteador.
V
vasco.fred
No caso ão é possível que eu conecte dois celulares via wifi?
Sendo um servindo como servidor e outro cliente?
Se sim, existe alguma API específica?
P
PoneyMan
Como já lhe disse, não é possível. Próximo !!!
V
vasco.fred
Ok.
Irei usar de fato agora um servidor central.
Agora estou com outro problema.
Estou tentando criar uma comunicação entre um servidor no pc e um cliente no android, apenas para testar.
importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.IOException;importjava.net.Socket;importandroid.app.Activity;importandroid.os.Bundle;importandroid.util.Log;publicclassAndroidSocketextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);try{Socketsocket=newSocket("10.0.2.2",1234);DataOutputStreamos=newDataOutputStream(socket.getOutputStream());os.writeUTF("Mensagem do Android...");os.flush();Log.i("Socket",in.readUTF());os.close();in.close();socket.close();}catch(IOExceptione){e.printStackTrace();}}}[/code[code]importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Socket;publicclassJavaServerSocket{privatestaticServerSocketserver;publicstaticvoidmain(String[]args)throwsIOException{server=newServerSocket(1234);System.out.println("Aguardando conexoes...");Socketaccept=server.accept();enviaMensagemSocket(accept);}privatestaticvoidenviaMensagemSocket(finalSocketaccept){newThread(newRunnable(){@Overridepublicvoidrun(){try{System.out.println("Recebeu uma conexao...");DataInputStreamis=newDataInputStream(accept.getInputStream());System.out.println("->Leu Mensagem");System.out.println(newString(is.readUTF()));DataOutputStreamout=newDataOutputStream(accept.getOutputStream());out.writeUTF("Resportado Servidor...");out.flush();out.close();is.close();accept.close();}catch(Exceptione){e.printStackTrace();}}}).start();}}
Coloco em java esse servidor, coloco pra rodar aparece: Aguardando Conexões.
Quando coloco pra rodar(no emulador) o codigo do cliente da esse erro:
The Aplication TesteConexao (process com.android) has stopped unexpectedly. Please try again.
Outra coisa, eu tinha esse código de servidor antigo.
Será que ele serve para esse meu primeiro teste?