Estoy tratando de usar sockets UDP en un android, aquí envío mi cadena desde el emulador de Android y la recibo por mi programa Java en PC, pero mi programa Java no recibe nada, aunque cuando utilicé el programa Java como cliente y servidor (hice dos programas Java diferentes) funcionó.¿Cómo usar sockets UDP en android?
Ésta es mi actividad principal androide:
public class First extends Activity {
Button b;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Thread t = new Thread(new Second());
t.start();
}
});
Aquí está mi segunda clase en android:
public class Second implements Runnable {
Second()
{
run();
}
public void run() {
// TODO Auto-generated method stub
try {
String messageStr = "Hello Android!";
int server_port = 9876;
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName("127.0.0.1");
int msg_length = messageStr.length();
byte[] message = messageStr.getBytes();
DatagramPacket p = new DatagramPacket(message, msg_length, local,
server_port);
s.send(p);
} catch (Exception e) {
}
}
}
Este es mi código de Java en el PC:
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData(),0,receivePacket.getLength());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
System.out.println("MESSAGE RECEIVED "+sentence+" "+IPAddress+" "+port);
}
}
gracias tonto funcionó –
supongamos que quiero hacer esto a través de wifi, ¿qué debo hacer entonces? –
Haga que su servidor sea accesible desde Internet. – zmbq