title: How to use UDP sockets in android?
body: <p>I am trying to use UDP sockets in a android, here I send my string from android emulator and receive that by my Java program on PC, but my Java program does not receive anything, although when I used Java program as both client and server (I made two different Java programs) it worked.</p>
  
  <p>This is my android main activity :</p>
  
  <pre><code>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();
          }
      });
  </code></pre>
  
  <p>Here is my second class in android :</p>
  
  <pre><code>    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) {
  
      }
  }
  }
  </code></pre>
  
  <p>This is my Java code on PC:</p>
  
  <pre><code>    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);
              }
       }
  </code></pre>