I have lan and I want to send an update message from my android (htc desire) to my computer. Theres Wlan Router in between. The problem is that the UPD message never gets to the PC.
Android Code:
package org.example.androidapp; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UDPClientAnd { public void sendUDPMessage(int port) throws java.io.IOException { DatagramSocket socket = new DatagramSocket(); InetAddress serverIP = InetAddress.getByName("192.168.1.110"); byte[] outData = ("Ping").getBytes(); DatagramPacket out = new DatagramPacket(outData,outData.length, serverIP,50005); socket.send(out); socket.close(); } }
I choose the high port on the sides.
Android rights:
uses-permission android:name="android.permission.INTERNET" uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"
The server side is a PC, just a simple program to receive:
package org.example.androidapp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class UPDServerAnd implements Runnable{ public void run(){ byte[] inData = new byte[48]; byte[] outData = new byte[48]; String message; DatagramSocket socket; try { socket = new DatagramSocket(50005); while (true) { DatagramPacket in = new DatagramPacket(inData,inData.length); socket.receive(in); InetAddress senderIP = in.getAddress(); int senderPort = in.getPort(); message=new String(in.getData(),0,in.getLength()); System.out.println("Got "+message+" from "+senderIP+","+senderPort); outData = "Pong".getBytes(); DatagramPacket out = new DatagramPacket(outData,outData.length, senderIP,senderPort); socket.send(out); } } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
So why is there no visible UDP packet from android? Even Wireshark shows only some ARP packets. Help Plz :)
source share