我有一台在专用服务器上在线运行的Java网络服务器,我有一个用Android SDK和java编写的Android网络客户端。
如果Android设备与WIFI连接,它工作正常,但如果我使用3G连接设备,当我从客户端调用readInt()
时,套接字将关闭。它不会在第一次通话时发生,但后来发生。它看起来非常随机,并且很难解释,但是当没有数据也不再读取(或不读取)时,可能会发生这种情况。例外是SocketException connection reset by peer
。
我想更具体地解释一下,但调试起来非常困难,而且就我而言,它看起来像是一个Android错误(不确定)。这就是我问这个问题的原因。因为当然有人遇到了同样的问题。
对于Android设备的WIFI连接和3G连接有什么区别,会产生这样的断开连接?有什么可能解决这个问题?
谢谢,如果有人可以提供帮助。
编辑:我的3G连接没有中断。这是套接字,只有套接字。只有在我连接3G时才会发生这种情况。不在WIFI。
答案 0 :(得分:1)
您的连接可能介于两者之间,在这种情况下,您之前创建的套接字已损坏/已关闭。 我建议你听网络更改意图“android.net.conn.CONNECTIVITY_CHANGE”,并在每次网络发生变化时重置你的套接字。这应该可以解决你的问题
答案 1 :(得分:0)
我找到了答案:几家3G网络提供商关闭其客户的插座以获取更多利润。唯一的解决方案是人为地减慢流量。