我真的需要帮助......
我有一个简单的Android应用程序连接到我的服务器以通过HTTPS获取数据。
一切正常,直到我从另一台设备(iOS或Android)连接到同一台服务器。我开始得到超时或连接被拒绝或其他错误取决于我使用的库(有时是SSL握手)
我在同一台路由器上尝试了2个Android应用程序 - 失败
我尝试过Volley,Retrofit,普通的http库 - 失败
如果一台设备通过蜂窝网络连接,另一台设备通过wifi连接,则工作正常。但是,我已经看到即使使用连接到蜂窝网络而不是wifi的2个设备也会失败的情况。
很容易重现。一个应用程序工作正常。一旦我在另一台设备上进行操作。第一个应用程序将无法连接。
使用相同api /服务器的iOS应用程序运行正常。没有失败
我在失败时在Android应用程序上运行wireshark并收到以下内容:
70 47.073286 10.0.0.1 10.0.0.138 ICMP 120目的地不可达(端口不可达)
似乎是端口问题。我不确定这是服务器问题还是客户端问题.. iOS应用程序运行正常。没有问题。只有Android。
我试过了:
System.setProperty("http.keepAlive", "false");
我尝试设置http标头“connection :close
”无效...
任何想法都会受到赞赏......
答案 0 :(得分:0)
这里的问题相同。当我的ios设备连接到allstar英雄或有趣运行应用程序时,Android设备无法连接。我无法找到解决办法。我的路由器是tp link dir 615。也许问题是frpm router。
答案 1 :(得分:0)
在一天结束时,这是服务器方面的问题。 IT人员给了我以下信息:" tcp内核设置上的错误标志" "重复使用连接"这就是我拥有的一切。希望它可以帮助别人
答案 2 :(得分:0)
我遇到了同样的问题。问题似乎是当应用程序尝试访问TIME_CLOSE here中的端口时,这是一个很好的解释,如何发生这种情况,将 tcp内核更改为重用连接,可能解决问题,因为服务器将尝试再次在TIME_CLOSE中重新使用这些连接。但它必须是客户端的解决方案,以避免连接卡住。在我的情况下,我试图从多个活动创建连接,我猜他们,不知何故,竞争打开和关闭连接,我解决了使用单个活动来连接到服务器的问题。
希望这对某人有用。
答案 3 :(得分:0)
确切地说同样的问题花了很多时间调查,没有任何帮助,包括“重用连接”标志,还试图禁用tcp_timestamp,tcp_tw_reuse,tcp_tw_recycle并启用应用程序的vm安全模式,如下所示:
但是一切都在静脉。
更进一步,非常奇怪的是我有两个不同的实例/服务器,我为了追踪问题而完全相同,一个服务器没有任何问题。
所以最后:
实例重启解决了连接问题。 (或者只是需要重新启动网络服务)
(c)我的服务器/实例管理员