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
パケットは送信されません。正常に動作するサーバーはまったく受信しません。
私は間違って送信していますか?ここで何が問題なの?
以外のスレッドからウィジェットの方法(例えば
setText
)(例えばTextView
)を呼び出すことはできませんエラー。 'D /'はデバッグメッセージです。 – CommonsWareパケットは送信されません。それは最終的に受信されていません(サーバーが動作していることを確認しました。パケットは送信されません)。 – BlueRay101
例外を無視するのではなく、 'Log.e(" yo "、" done blow'd up "、e);をあなたの' catch'ブロックに記録してください。 **決して**は何もしない 'catch'ブロックを持っていません。 – CommonsWare