我们有一个Android应用程序,它使用soap与使用gsoap在C ++中实现的API进行通信。 Android应用程序使用ksoap2-android库进行肥皂通信。
当Android应用程序在实际设备上运行并通过wifi进行通信时,一切似乎都应该正常工作。但是,当在仿真器(虚拟化x86映像)中运行时,具有较长回复的请求通常会因ProtocolException意外的流结束而失败。
这个错误,因为它只会在长时间的响应中发生,让我相信在gsoap端,套接字很快就会关闭。我试过了一些事情。
由于睡眠不是一个好的解决方案,我最终使用选择似乎工作正常但我对这个解决方案没有100%的信心。
这是实际的代码更改。这些是stdsoap2.cpp中tcp_disconnect函数的最后几行。 tcp_select调用是我添加的。
setInterval()
这是正确的解决方案吗?