Conexão Sockets

Desenvolvi uma aplicação em j2me que realiza uma conexão via socket com um servidor, para troca de dados. Como faço o contrario: um servidor envia dados para o celular via conexão socket TCP (neste caso, a aplicação será inicializada utilizando push registry, isto eu ja sei como faz)? O problema encontrado é na hora de especificar a URL do celular, que seria o IP do aparelho, para estabelecer a conexão. Devo enviar os dados para um servidor, um gateway da operadora para depois ela redirecionar para o celular do cliente?

Você pode fazer da seguinte forma.

Sempre que sua aplicação iniciar, ela inicia uma conexão com o servidor, e mantém esta conexão ativa, mesmo sem receber dados, talvez dando um ping a cada 5 minutos. Se a conexão cair, a aplicação inicia outra no lugar da antiga.

Quando o servidor precisar notificar a aplicação de algo, ele simplesmente escreve na conexão que estará sempre aberta.

Se a operadora te deu um IP (ou seja, se vc conseguiu isto dela melhor dizendo), basta o servidor iniciar a conexão com o celular.
Normalmente o celular não tem um IP único que pode ser verificado pelo servidor.Todas as requisições na nuvem caem sob um mesmo IP no servidor, por isto não tem como distinguir quem é quem.

Salvo esta situação de vc conseguir um IP, o que acho difícel, não tem jeito de iniciar no modelo servidor -> cliente, e daí a única saída é usar a dica do npereirajr mesmo.

Valeu galera