J2ME broadcast e Java EE Listener

0 respostas
A

Olá eu preciso fazer um app J2ME se comunicar com vários processos que são feitos em Java EE, como eu posso fazer do lado do J2ME uma conexão que envie mensagens broadcast. E como posso fazer o outro lado ouvir?? Eu estou tentando assim, mas não funciona…

Do lado do J2ME

public Datagram data;

public UDPDatagramConnection socket;

public void Conecta()

{

try

{
socket =(UDPDatagramConnection) Connector.open("datagram://226.255.255.255:2001",Connector.READ_WRITE,true); //Conectando num IP Broadcast
        System.out.println("Conectado UDP");
    }
    catch(Exception e)
    {
        System.out.println("[UDP Connector] Erro ao tentar conectar UDP: " + e.getMessage());
        e.printStackTrace();
    }
}
public void EnviaMsg(String msg)
{
    try {
        //Montando pacote de mensagem.
        byte [] buffer = msg.getBytes();
        data = socket.newDatagram(buffer, buffer.length);
        
        //Enviando mensagem
        socket.send(data);
        System.out.println("Enviado: " + msg + " no ip " + data.getAddress().toString());
    }catch (Exception e) {
         System.out.println("[UDP Connector] Erro ao tentar enviar mensagem UDP: " + e.getMessage());
         e.printStackTrace();
    }
}

Do lado do JavaEE

private static MulticastSocket msocket;

private static int Porta;

private static InetAddress Ip;

public UDPConnector()

{
Porta = 2001;
	try {
		Ip = InetAddress.getByName("226.123.43.2");
	} catch (UnknownHostException e) {
		e.printStackTrace();
	}
}

public boolean Conecta()
{
	try
	{
				msocket=new MulticastSocket(Porta);
				msocket.joinGroup(Ip);
				System.out.println("Conectado");
    return true;
	}
	catch(Exception ex)
	{
		System.out.println("Erro ao conectar no grupo UDP" + ex.getMessage());
		ex.printStackTrace();
		return false;
	}

}
public String Wait(int timeout)

{

try {

//     socket.setSoTimeout(timeout);

byte [] buffer = new byte[512];

Datagram mdata = socket.newDatagram(buffer.length);

socket.receive(mdata);

String msg = “”+new String(mdata.getData(),mdata.getOffset(),mdata.getLength());

return msg;

}

catch (Exception e) {

System.out.println("Erro no WaitGenerico " + e.getMessage());

e.printStackTrace();

return null;

}

}

Mas o Java EE não está recebendo as mensagens. Alguém pode me ajudar???
Obrigado!

Criado 16 de outubro de 2010
Respostas 0
Participantes 1