2012-03-05 23 views
0

私はアンドロイドでUDPブロードキャストを実行できます。クライアントはIPアドレスを送信することが期待されます。同じネットワーク上で3〜4台のクライアントが稼働している場合、私はただ1台のクライアントの応答を受信して​​います。 すべてのクライアントからの返信を受信したいと考えています。ここでは、クライアントから送信されたデータを受信するブロードキャスタコードがあります。アンドロイドでUDPパケットを受信

public class Scan4Activity extends Activity { 
TextView tv; 
int i=-1; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Log.i("ggrerrrrrrrggg", "hhaqaaaaaaaaaaahhhhhhh"); 
    setContentView(R.layout.main); 
    //String[] b=; 
    try { 
     Log.i("ggggg", "hhhhhhhhh"); 
     String modifiedSentence="received!!!:)"; 
      main(null); 
     Toast.makeText(getApplicationContext(), modifiedSentence, Toast.LENGTH_LONG).show(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     System.out.println("FROM SERVER:error"); 
     e.printStackTrace(); 
    } 
} 

    public void main(String args[]) throws Exception 
    { 
     DatagramSocket clientSocket = new DatagramSocket(); 
     InetAddress IPAddress = InetAddress.getByName("255.255.255.255"); 
     byte[] sendData = new byte[1024]; 

     String sentence = "hello";//inFromUser.readLine(); 
     sendData = sentence.getBytes(); 
     DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 16789); 
     clientSocket.send(sendPacket); 
     while(true){ 
     byte[] receiveData = new byte[1024]; 
     DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); 
     clientSocket.receive(receivePacket); 
     String modifiedSentence = new String(receivePacket.getData()); 


     Toast.makeText(getApplicationContext(), modifiedSentence, Toast.LENGTH_SHORT).show(); 

     System.out.println("FROM SERVER:" + modifiedSentence); 



    try{ 
     clientSocket.close(); 
    } 
    catch(Exception e){ 

     System.err.println("Cannot Close the Socket"); 
    } 
    } 
} 

だから助けてください。

答えて

1

2g/3gネットワークでテストするか、2g/3gでテストした場合、携帯電話で静的IPがかなり「ローカル」 「2g/3gネットワーク内でのみ有効で、udpパッケージがモバイル事業者のネットワークを離れ、インターネット上に出ると、それはオペレータのIPから来るように見え、すべてのハンドセットで同じように見えます。

+0

いいえ2g/3gネットワークでテストしていませんが、WIFIでテストしています...私は255.255.255.255を使用して放送しています。 – ragz

関連する問題