重拨后只接收少量UDP数据包.(Android Emulator)



我编写了一个桌面java程序来与我试图访问的服务器对话,并使其工作。我可以发送和接收UDP数据包。我知道如何移植我对android所做的一切。几天来,我一直在摆弄Android Emulator,遇到了接收UDP数据包的问题。如果我启动我的应用程序,连接到服务器,然后重拨我正在使用的端口,我会收到大约130个数据包,然后什么都没有。。。我使用WireShark来确保服务器仍在发送数据包,事实确实如此。Android的Emulator上有类似IP Flood Detection的功能吗?

编辑:

拼写

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

  • 当我发出redir命令时,我会得到大约130个数据包,地址为"10.0.2.2">

  • 我试过"adb-forward-udp:port-udp:port",得到"无法绑定到套接字">
  • 来自模拟器外部的服务器IP为"10.10.0.100">

编辑

  • 服务器不在模拟器或其他android设备上

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

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

我已经使用SDK 10和SDK 15在模拟器中进行了上面的测试,这两个软件都运行在Intel Accelerated Execution Manager中。

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

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

最新更新