套接字发送但不在模拟器中接收

时间:2014-08-30 09:57:41

标签: android sockets android-emulator

我正在创建一个应用程序,两个设备应通过TCP套接字进行通信。一台设备是我的三星手机,另一台是模拟器。我将模拟器设置为客户端,将手机设置为服务器。客户端连接到手机并正常工作(发送和接收)但几分钟后它停止接收但发送没有问题。网络部分有数百行代码,其中包含很多功能,使得阅读变得复杂,所以我决定不在这里写,但我怀疑这个问题来自模拟器本身。这意味着如果我使用真实的设备而不是模拟器,这将不会发生。服务器和客户端的网络代码的很多部分是相似的,服务器运行正常。只有模拟器中的客户端套接字才会停止RECEIVING。它可以发送(所以连接是活的)我检查线程。他们也活着。你是否同意这可能是模拟器的问题?

1 个答案:

答案 0 :(得分:0)

我认为这是您的应用程序中的问题而不是模拟器中的问题,因为:

  • android模拟器的级别很低,就是它模拟硬件,然后在它上面运行普通软件。因此,它不知道像TCP那样的高级协议,它只模拟网卡。
  • TCP是一种协议,其中所有消息都由对等方确认。如果模拟器在接收消息时遇到问题,则可能也不会收到您发送的数据包的确认。但这会使你的应用程序内部的进一步发送失败,这与你发送工作的声明相反。
  • 如果在模拟器中存在这样的问题,其他人也会注意到。