Foros del Web » Programando para Internet » Android »

[SOLUCIONADO] Mandar DatagramPacket a Android

Estas en el tema de Mandar DatagramPacket a Android en el foro de Android en Foros del Web. Hola qué tal. Necesito enviar un DatagramPacket a Android desde java. Las dos IPs se conocen y se ven, de hecho alguna vez he conseguido ...
  #1 (permalink)  
Antiguo 09/05/2013, 10:13
 
Fecha de Ingreso: noviembre-2011
Ubicación: Granada
Mensajes: 13
Antigüedad: 12 años, 5 meses
Puntos: 0
Mandar DatagramPacket a Android

Hola qué tal.
Necesito enviar un DatagramPacket a Android desde java. Las dos IPs se conocen y se ven, de hecho alguna vez he conseguido enviar el mensaje adaptando éste codigo:

Servidor JAVA
Código:
String messageStr="Hello Android!";
int server_port = 12345;
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("192.168.1.xxx");
int msg_length=messageStr.length();
byte[] message = messageStr.getBytes();
DatagramPacket p = new DatagramPacket(message, msg_length,local,server_port);
s.send(p);
Cliente ANDROID
Código:
String text;
int server_port = 12345;
byte[] message = new byte[1500];
DatagramPacket p = new DatagramPacket(message, message.length);
DatagramSocket s = new DatagramSocket(server_port);
s.receive(p);
text = new String(message, 0, p.getLength());
Log.d("Udp tutorial","message:" + text);
s.close();
El problema que se me presenta es el siguiente. Mientras recibo el mensaje (que no tiene por qué ser instantáneamente) el método receive() bloquea el hilo principal de la ejecución. Esto no puede ser, mientras se recibe el mensaje la aplicacion debe seguir trabajando, es decir, necesito que el metodo receive se haga en segundo plano.

He probado con AsyncTask, con Service, con IntentService, con Threads y NADA. estoy desesperado. Espero vuestras respuestas y perdón por el sermón. Un saludo y gracias de antemano.

Última edición por litozz; 27/05/2013 a las 07:32

Etiquetas: aplicacion, java
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:13.