[Sockets] Conectando celular com Servidor

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.

Segue…

Classe Servidor

p[code]ackage Servidor;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

/**
*

  • @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;
}

}
[/code]

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.

Na verdade estou tentando exatamente issu, conectar ao servidor da minha rede local, não é possivel? Então como deveria proceder? Obrigado pela ajuda.

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?

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=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.

Boa sorte!

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]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.

Aí é só fazer o procedimento padrão com sockets…

Para mais detalhes vá em java.sun.com depois em APIs Java e procure java.net!

[]'s

Uma boa prática seria uma prática inadequada?

java.net seria a API que fará a conexão?

ñ, vai ser a javax.microedition.io

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

flw, t+

Exatamente o que o quikkoo disse!

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…

[]'s