android - 一段时间后 UDP 传输停止

标签 android network-programming udp

好的,这就是我的问题。我有一个 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/

相关文章:

linux - UDP 客户端与 UDP 服务器时序不同步

udp - 保护 UDP 连接的安全

Android 主题错误的

安卓 OCR : Application crashes at OCR function(or trying to load library)

android - 从图片中选择主色

xcode - 使用 TCP/IP 发送数据包以在 XCode 中使用

c - 使用 ioctl 或 netlink 添加和删除接口(interface)的 IP 地址

Java UDP 数据报包 - 切片数据以适应缓冲区大小

android - 单播发送 UDP 不起作用,但广播发送 UDP 可以

android - Sqlite 数据库 onCreate 参数