2012-09-29 22 views
10

Bir androidde UDP yuvaları kullanmaya çalışıyorum, burada dizimi android emülatöründen gönderiyorum ve bunu Java programımla PC'de aldım, ancak Java programım hiçbir şey almıyor ancak Java programını hem istemci hem de Sunucu (iki farklı Java programı yaptım) çalıştı.Android'de UDP yuvaları nasıl kullanılır?

Bu benim android ana faaliyettir: Burada

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(); 
     } 
    }); 

olan android benim ikinci sınıf:

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) { 

    } 
} 
} 

Bu PC'de Java kodu: Açık

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); 
      } 
    } 

cevap

10

senin Android emülasyonu (ve Android cihazı), 127.0.0.1, ana bilgisayar PC değil, Android emülasyon makinesi anlamına gelir. Ev sahibine 10.0.2.2

+0

adresinden bir tondan daha fazla çalışmış olabilirsiniz. –

+0

Bunu wifi üzerinden yapmak istediğimi varsayalım ne yapmalıyım? –

+0

Sunucunuzu İnternet'ten erişilebilir yapın. – zmbq