3

我编写了一个桌面 java 程序来与我试图访问的服务器通信并让它工作。我可以发送和接收UDP数据包。我知道将我所做的事情移植到 android 上。几天来,我一直在搞乱 Android Emulator,遇到了接收 UDP 数据包的问题。如果我启动我的应用程序,连接到服务器,然后重新分配我正在使用的端口,我会收到大约 130 个数据包,然后什么都没有......我使用 WireShark 来确保服务器仍在发送数据包并且它是。Android 的模拟器上是否有类似IP 洪水检测的功能?

编辑:

拼写

  • 服务器连接到我的开发计算机所连接的交换机。
  • 服务器正在响应我从桌面应用程序发送的数据包。
  • 服务器正在将数据包发送到开发计算机的 IP 地址。
  • 我正在使用的 redir 命令是“redir add udp:port:port”

  • 当我发出 redir 命令时,我得到了 ~130 个数据包,其发件人地址为“10.0.2.2”

  • 我试过“adb forward udp:port udp:port”并得到“无法绑定到套接字”
  • 模拟器外部的服务器IP是“10.10.0.100”

编辑

  • 服务器不在模拟器或其他安卓设备上
4

2 回答 2

1

我用类似的设置做了一个测试,得到了相同的行为。

aprox 后每秒发送一个 UDP 数据包。130个数据包,模拟器中运行的接收器停止接收数据包,我确认数据包一直在发送。

我使用 SDK 10 和 SDK 15 在模拟器中进行了上述测试,两者都在英特尔加速执行管理器中运行。

它看起来像模拟器重定向功能中的一个错误,或者如您所建议的,某种类型的网络洪水预防。

于 2012-10-08T20:45:15.483 回答
0

我买了一个 Nexus 7,运行了我一直在开发的这个应用程序,可以接收 3000 多个数据包。看起来它与模拟器有关。

于 2012-10-11T14:11:03.890 回答