2017-02-08 5 views
0

ボタンの押しでAndroidでUDPパケットを送信しようとしています。Android - これは1つのUDPパケットを送信する正しい方法ですか?

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/sender" 
    android:text="Send" 
    android:layout_marginTop="30dp" 
    android:layout_below="@+id/secondact" 
    android:layout_centerHorizontal="true" 
    android:padding="30dp" 
    android:onClick="sendUdp"/> 

私もAndroidのマニフェストにこれを追加しました::

public void sendUdp(View view) 
{ 
    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       HelloText.setText("tfi"); 
       DatagramSocket clientSocket = new DatagramSocket(); 
       InetAddress IPAddress = InetAddress.getByName("10.0.0.4"); 
       byte[] sendData = new byte[1024]; 
       sendData = "Hello".getBytes(); 
       DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 15000); 
       sendPacket.setLength(sendData.length); 
       clientSocket.send(sendPacket); 
      } 
      catch (Exception e) { } 
     } 
    }).start(); 

} 

これは、パケットを送信するために押下されるボタンのXMLは次のとおりです。これは今まで私がやったことです

<uses-permission android:name="android.permission.INTERNET"/> 

私が送信しようとすると、このエラーが(アンドロイドStudioを使用して、私のギャラクシーS4、USBで接続されているアンドロイド5.0で実行されている)ログにポップアップ表示:

D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN 

パケットは送信されません。正常に動作するサーバーはまったく受信しません。

私は間違って送信していますか?ここで何が問題なの?

+0

以外のスレッドからウィジェットの方法(例えばsetText)(例えばTextView)を呼び出すことはできませんエラー。 'D /'はデバッグメッセージです。 – CommonsWare

+0

パケットは送信されません。それは最終的に受信されていません(サーバーが動作していることを確認しました。パケットは送信されません)。 – BlueRay101

+0

例外を無視するのではなく、 'Log.e(" yo "、" done blow'd up "、e);をあなたの' catch'ブロックに記録してください。 **決して**は何もしない 'catch'ブロックを持っていません。 – CommonsWare

答えて

0

私は推測で正しいですHelloTextTextViewまたは(EditViewなど)ですか?これはあなたの問題の原因は...ある場合

あなたがいないメイン/ UIスレッド

関連する問題