Android从同一IP地址接收UDP数据包

时间:2012-05-24 20:36:01

标签: android udp packet

我的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);

1 个答案:

答案 0 :(得分:0)

如果您有wireshark,请尝试检查X-Plane是否正在发送数据包。

另外,你说你的“应用程序冻结”并不一定意味着没有收到数据包。我不知道你要做什么,但也许你正在UI线程上执行接收/发送操作,这会导致应用程序冻结。

尝试在s.receive(p)之后添加日志,并检查它是否出现在LogCat中。 Log.d("MYACT","Packet received");