2012-04-06 16 views
1

私のラップトップからAndroidデバイスにudpパケットを送信したいのですが、単純なアプリケーションを作成しても動作しません。私が使用しているポート(5554)は、問題。 コード:Android udpポート

`プライベートボイドrunUdpServer()他

EditText RecieveText = (EditText) findViewById(R.id.editText1); 
    EditText check = (EditText) findViewById(R.id.editText2); 
    String lText; 
    byte[] lMsg = new byte[MAX_UDP_DATAGRAM_LEN]; 
    DatagramPacket dp = new DatagramPacket(lMsg, lMsg.length); 
    DatagramSocket ds = null; 
    RecieveText.setText("try1"); 
    try { 

RecieveText.setText("try2"); ds = new DatagramSocket(UDP_SERVER_PORT); // i think the problem is here
//disable timeout for testing
if (ds != null){RecieveText.setText("connected");}
{RecieveText.setText( "接続されていない");}

 RecieveText.setText("try"); 

ds.receive(dp); lText = new String(lMsg, 0, dp.getLength()); Log.i("UDP packet received", lText); RecieveText.setText(lText); check.setText("port opened"); } catch (SocketException e) {`` check.setText("SocketException"); e.printStackTrace( ); else {RecieveText.setText("not connected");} } }

答えて

0

} catch (IOException e) { 

     e.printStackTrace(); 
     check.setText("port didn't open"); 

    } finally { 
     if (ds != null) { 
      ds.close(); 
      RecieveText.setText("not connected1"); 
     } 
     else {RecieveText.setText("not connected1");} 
    } 
    check.setText("end"); 
    if (ds != null){RecieveText.setText("connected");}    

は、私はそれが... ...どのような方法これを試してみてください.... faillureのより良いアイデアを持っているあなたのエラーログを印刷する任意のタイプミスのためにチェックされていないポートの問題であると思ういけません....また

byte[] send= new byte[60*1024]; 
    DatagramPacket send_packet = new DatagramPacket(send, send.length); 


    try { 
     socket.send(send_packet); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
を送る/// ...任意のネットワーキング・タスクは非同期タスク内であることを優れていることを念頭に置いて

int port =1855; ///any port that you want > 1024 
    DatagramSocket socket = null; 
    try { 
     socket = new DatagramSocket(port); 
    } catch (SocketException e) { 
     e.printStackTrace(); 
    } 
    try { 
     socket.setBroadcast(true); 
    } catch (SocketException e) { 
     e.printStackTrace(); 
    } 


    //////send socket 
    int eport = 1616; 
    InetAddress eip = null; 
    try { 
     eip = InetAddress.getByName("192.168.1.1"); ////SERVER IP ADDRESS 
    } catch (UnknownHostException e) { 
     e.printStackTrace(); 
    } 


    DatagramSocket esocket = null; 
    try { 
     esocket = new DatagramSocket(eport); 
    } catch (SocketException e) { 
     e.printStackTrace(); 
    } 

を保ちます3210

//////開始受信 (真) {

 byte[] message = new byte[60*1024]; 
     DatagramPacket recv_packet = new DatagramPacket(message, message.length); 


     try { 
      socket.receive(recv_packet); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    ///Do something whit recv_packet 
} 
関連する問題