我真的需要帮助。。。
我有一个简单的Android应用程序,它连接到我的服务器,通过HTTPS获取数据。
一切都很好,直到我从另一台设备(iOS或Android)连接到同一台服务器。我开始出现超时或连接被拒绝或其他错误,这取决于我使用的库(有时是SSL握手)
-
我在同一路由器上尝试了2个android应用程序-失败
-
我尝试了Volley,改装,纯http库-失败的
-
如果一个设备通过蜂窝网络连接,另一个通过wifi连接,它就可以正常工作。然而,我看到过这样的情况,即使使用2个连接到蜂窝网络的设备,而不是wifi,它也会失败。
-
它很容易复制。一个应用程序运行良好。只要我在另一台设备上做了手术。第一个应用程序将无法连接。
-
使用相同api/服务器的iOS应用程序运行良好。无故障
-
我在失败期间在安卓应用程序上运行wireshark,并收到以下消息:
70 47.073286 10.0.0.1 10.0.0.138 ICMP 120目标不可达(端口不可达)
似乎是端口问题。我不再确定这是服务器问题还是客户端问题。。iOS应用程序运行良好。没有问题。只有安卓系统。
我试过了:
System.setProperty("http.keepAlive", "false");
我尝试设置一个http头"connection :close
",但没有任何作用。。。
任何想法都将不胜感激。。。
这里也有同样的问题。当我的ios设备连接到allstar英雄或趣味运行应用程序时,android设备无法再连接。我找不到解决办法。我的路由器是tp链接目录615。也许问题出在frpm路由器上。
归根结底,这是服务器端的问题。IT人员给了我以下信息:"tcp内核设置上的错误标志"重用连接",这就是我给你的全部信息。希望它能帮助其他人
我也遇到了同样的问题。问题似乎是当应用程序试图访问TIME_CLOSE中的端口时。这里有一个很好的解释,将tcp内核更改为重用连接,可能会解决问题,因为服务器将再次尝试重用TIME_CLOSE中的这些连接。但它必须是客户端的解决方案,以避免连接被卡住。在我的案例中,我试图从多个活动创建连接,我想他们不知何故竞争打开和关闭连接,我用一个活动来连接服务器,解决了这个问题。
希望这对某人有用。
遇到了完全相同的问题,并花费了大量时间进行调查,但没有任何帮助,包括"重用连接"标志,还尝试禁用tcp_timestamp、tcp_tw_Reuse、tcp_th_recycle,并为应用程序启用vm安全模式,如下所示:
- https://github.com/square/okhttp/issues/903
- https://github.com/square/okhttp/issues/1037
- https://github.com/square/okhttp/issues/1518
但都是一脉相承的。
此外,非常奇怪的是,我有两个不同的实例/服务器,为了跟踪问题,我制作了完全相同的实例/服务,而其中一个服务器没有任何问题。
所以最终:
实例重新启动解决了连接问题。(或者只需要重新启动网络服务)
(c) 我的服务器/实例管理员