0

私のAndroidアプリケーションは、パケットを受信して​​いないため、s.receive(p)で停止します。

X-PlaneがデータのパケットをAndroidタブレットと同じIPアドレスのランダムポート49059に送信していて、それらのパケットを受信したいと思っています。これは、同じ接続で実行されているためです。X-Planeは、ポート49000を使用してパケットを送信し、49001を使用してパケットを受信します。

何が悪いのかわかりません。Androidタブレットで3Gを使用できません。これは、テストできる唯一のインターネット接続です。また、マニフェストではすべてのインターネットとWi-Fiのアクセス許可が有効になっています。何か案は?コードは次のとおりです。

byte[] bar = new byte[1024];
DatagramPacket p = new DatagramPacket(bar, bar.length);
DatagramSocket s = new DatagramSocket(49059);
s.setSoTimeout(30000);
s.receive(p);
4

1 に答える 1

0

Wireshark を使用している場合は、パケットが X-Plane によって送信されているかどうかを確認してください。

また、「アプリケーションがフリーズする」と言っていますが、これは必ずしもパケットが受信されていないことを意味するわけではありません。何をしようとしているのかはわかりませんが、UI スレッドで送受信操作を実行しているため、アプリケーションがフリーズする可能性があります。

以下のようなログの後にログを入れてみてs.receive(p)、LogCat に表示されるかどうかを確認してください。 Log.d("MYACT","Packet received");

于 2012-05-24T21:11:57.123 に答える