好的,这就是我的问题。我有一个 Android 应用程序,根据用户与 Android 设备的交互,将 UDP 数据包传输到 PC(一个监听数据包的 Java 程序)。为了简单起见,假设正在发生这种情况 - 用户点击手机屏幕,它会发送一个 UDP 数据包,其中包含用户点击点的坐标。监听器程序接收并读取此数据包,并使用 System.out.println() 输出接收到的字符串。
现在,程序对于前几个数据包运行得很好。然后它停止工作,就像桌面上的监听器程序不显示任何输出一样。现在,问题可能与传输有关,因为我在应用程序上有一个文本标签(用于测试目的),显示正在传输的内容,因此传输数据包肯定已正确构建。但我不知道如何理解这是否是发送数据(在 Android 设备端)或接收(在桌面端)的问题。我怎样才能找出问题并解决这个问题?
最佳答案
我主要使用 TCP 传输,而我所做的所有 UDP 大部分都是复制粘贴 [:-)] 或使用 API
对于 TCP,传输后,我会抛出一条调试消息,这有助于我知道传输是否正确发生。但在这种情况下,您的写入必须是阻塞
。
此外,您可以在监听器终端上使用Packet Tracer
来确定它是否正确接收数据包。我喜欢的是 WireShark(我认为它是 Ethereal 的一个分支)。它真的很容易使用。您告诉它要监听哪个接口(interface)并提供过滤器,它会在数据包到达时列出它们。
但是,如果您使用的是 Windows 7,则需要管理员权限。
关于android - 一段时间后 UDP 传输停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12137433/