0
我的Android应用程序在s.receive(p)处停顿,因为它没有收到任何数据包。Android接收来自相同IP地址的UDP数据包
我有X平面将数据包发送到同一IP地址中的随机端口49059作为我希望接收这些数据包的Android平板电脑。这是因为他们正在运行相同的连接。 X-Plane使用端口49000发送数据包并使用49001接收数据包。我想不出什么是错的。我无法在Android平板电脑上使用3G,这是我可以测试的唯一互联网连接。此外,清单中还启用了所有互联网和wifi权限。有任何想法吗?这里的代码:
byte[] bar = new byte[1024];
DatagramPacket p = new DatagramPacket(bar, bar.length);
DatagramSocket s = new DatagramSocket(49059);
s.setSoTimeout(30000);
s.receive(p);
android平板电脑不需要发回数据包,所以它只接收。是的,它现在在UI线程中,只是为了确保它的工作。它虽然没有收到数据包,因为我已经在s.receive(p)之后放了一个Log.d,但它没有到达那里。 “冻结”的意思是它在接收函数上停顿。 – lespommes
我的意思是确保数据包的来源实际上是发送数据包。 而且是接收数据包的缓冲区大小(在你的情况下为1024)是否足够?另外,也请尝试不同的端口,以防万一。 如果你能澄清你的意思是“在相同的IP” – Alabhya
得到它的工作,谢谢你的帮助,Wireshark帮助确定问题(错误的IP),这将是有益的。 – lespommes