1
我正在制作一个应用程序,哪两个设备应该通过TCP套接字进行通信。一个设备是我的三星手机,另一个是仿真器。我将模拟器设置为客户端,将手机设置为服务器。客户端连接到电话并工作正常(发送和接收),但几分钟后它停止接收,但发送没有问题。网络部分有数百行代码,其中有许多函数使得阅读变得复杂,所以我决定不在这里写,但我怀疑问题来自模拟器本身。这意味着如果我使用真实设备而不是仿真器,这不会发生。网络代码的很多部分与服务器和客户端类似,并且服务器正常运行。只有模拟器中的客户端套接字停止接收。它可以发送(所以连接是活着的),我检查线程。他们也活着。你是否同意这可能是模拟器的问题?套接字发送但在仿真器中没有收到
谢谢但是您确定“未收到确认会导致进一步发送失败,以便服务器不会收到新消息”吗?所有的消息都传递给服务器,我在服务器端检查这一点,而不是在客户端。但你确定这个说法吗? – user2808671 2014-08-30 11:14:31
是的,这是TCP的工作原理。如果确认没有回到android内核,它会将连接标记为断开,并且进一步写入将失败。 – 2014-08-30 11:32:54
也许确认收到,但没有其他数据包!我一遍又一遍地查看了整个代码,但没有发现任何导致服务器接收到但客户端(模拟器)没有收到的信息 – user2808671 2014-08-30 11:36:11