2012-09-29 7 views
10

私はアンドロイドでUDPソケットを使用しようとしています。ここでアンドロイドエミュレータから文字列を送信し、PC上のJavaプログラムで受信しますが、Javaプログラムは何も受信しません。サーバー(私は2つの異なるJavaプログラムを作った)それは働いた。アンドロイドでUDPソケットを使用するには?

これは私のアンドロイド主な活動である:ここでは

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

はアンドロイドで私の第二のクラスです:

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

    } 
} 
} 

これは、PC上で私のJavaコードです:あなたに

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

答えて

10

Androidエミュレーション(およびAndroidデバイス)、127.0.0.1は、Android PCではなくAndroidエミュレーションマシンを意味します。ホストにアクセスするには10.0.2.2

+0

これは働いていた人よりも多い –

+0

私はwifiでこれをやりたいのですが? –

+0

インターネットからサーバーにアクセスできるようにする。 – zmbq

関連する問題