Olá pessoal
Estou com dificuldades de conectar o celular com sevidor
tenho uma aplicação que acessa o servidor e faz uma requisição via socket. No emulador funfa beleza mas quando eu tento com celular nada.
O acesso é via wifi de um nokia 5530. Será que o Problema é a configuração da rede.
@author CamilaAliceHilton
*/
class SocketSoma {
private final Socket socket;
public SocketSoma(Socket socket) {
this.socket = socket;
}
void soma() throws IOException {
DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
int n1 = in.readInt();
int n2 = in.readInt();
out.writeInt(n1+n2);
in.close();
out.close();
socket.close();
}
}
[/code]
classe cliente
[code]class ClientesomaJ2me {
public ClientesomaJ2me() {
}
int soma(int s1, int s2) throws IOException {
SocketConnection socket = (SocketConnection) Connector.open("socket://192.168.1.2:4444");
DataInputStream in = socket.openDataInputStream();
DataOutputStream out = socket.openDataOutputStream();
out.writeInt(s1);
out.writeInt(s2);
int soma = in.readInt();
in.close();
out.close();
socket.close();
return soma;
}
vá nas configurações do aparelho, ñ me lembro exatamente onde, mas verifique se a maquina virtual dele permite que a midlet faça conexões, se nao permitir apenas habilite a opção
Se a url que você postou não for apenas um exemplo (“socket://192.168.1.2:4444”) você está tentando acessar um servidor na sua LAN o que não é possivel com o aparelho de celular. Se for só exemplo tudo bem.
Srs. mais uma dúvida…rsr
como eu faço para dividir os pacotes. Por exemplo,
faço uma equisição ao servidor e ele me retorna um array de strings String a[];. Logo em seguida faço outra requisição e ele me retorna outro array de string, String b[];. Como eu faço para separa os pacotes. Há essa Possibilidade?
Aguardo
Isso é perfeitamente possível! Para conectar uma aplicação de celular a um servidor de uma LAN local, basta que o celular possua Wi-fi. Vc deve configurar as propriedades da sua aplicação para que ela utilize a conexão Wi-fi.
O que vc quer dizer com pacotes? vc quer separar as mensagens que são enviadas pelo servidor?
[quote=edwagner]OliveirakunJava. Como eu faria uma conexão do celular com um servidor numa rede local (LAN)? Tipo “socket://192.168.1.2”, por exemplo.
Um abraço.[/quote]
Cara, é como eu disse antes: Seu celular precisa possuir Wi-fi e sua rede LAN deve possuir um ponto de acesso Wireless. No celular conecte a rede Wireless e abra sua aplicação em seguida ou se preferir entre nas configurações do aplicativo e deixe a conexão Wi-fi como conexão padrão da sua aplicação.
O resto é igual vc faz no desktop: Crie um socket cliente para se conectar ao servidor, se vc conhece sockets então não tem segredo.
[quote]Me desculpem por reviver o tópico, mas é para não criar outro quase igual.
Se eu conectar na rede Wi-Fi do meu vizinho, e quiser as requsições do meu PC, que também está ligado, como deve ser feito?[/quote]
Você tem que saber o IP da sua máquina, caso ele seja físico vc configura no programa, se achar mais fácil, senão, vc coloca à mão sempre que for conectar…
Vale lembrar que configurar direto na aplicação não é boa prática, nem média, nem ruim, é horrível… Mas talvez no seu caso especificamente seja viável.
ele quiz dizer q é uma pratica ruim vc pedir q o usuário da sua aplicação que digite o ip do servidor toda vez q ele for usá-la
e tb que pode ser viável pra vc no momento caso vc só tenha um ip dinamico disponivel
Mas só pra esclarecer, a API java.net é utilizada para fazer comunicação em rede…
Não sei se JME utiliza exatamente esta API ou alguma específica… olhe o comentário do quikkoo!
Talvez dê pra usar esta API em JME tb! Precisa dar uma pesquisada…