我的Android应用程序在s.receive(p)停止,因为它没有收到任何数据包。
我让X-Plane将数据包发送到SAME IP地址中的随机端口49059,作为我想要接收这些数据包的Android平板电脑。这是因为它们正在运行相同的连接。 X-Plane使用端口49000发送数据包,使用49001接收数据包。
我无法弄清楚出了什么问题。我无法在Android平板电脑上使用3G,这是我可以测试的唯一互联网连接。此外,清单中启用了所有Internet和wifi权限。有任何想法吗?这是代码:
byte[] bar = new byte[1024];
DatagramPacket p = new DatagramPacket(bar, bar.length);
DatagramSocket s = new DatagramSocket(49059);
s.setSoTimeout(30000);
s.receive(p);
答案 0 :(得分:0)
如果您有wireshark,请尝试检查X-Plane是否正在发送数据包。
另外,你说你的“应用程序冻结”并不一定意味着没有收到数据包。我不知道你要做什么,但也许你正在UI线程上执行接收/发送操作,这会导致应用程序冻结。
尝试在s.receive(p)
之后添加日志,并检查它是否出现在LogCat中。
Log.d("MYACT","Packet received");