【问题标题】:Android http connection - multiple devices cannot connect the same serverAndroid http 连接 - 多台设备无法连接同一个服务器
【发布时间】:2018-11-05 15:02:13
【问题描述】:

我真的需要帮助......

我有一个简单的 Android 应用程序,它连接到我的服务器以通过 HTTPS 获取数据。

在我从另一台设备(iOS 或 Android)连接到同一台服务器之前,一切正常。我开始出现超时或连接被拒绝或其他错误,具体取决于我使用的库(有时是 SSL 握手)

  1. 我在同一个路由器上尝试了 2 个 android 应用 - 失败

  2. 我尝试过 Volley、Retrofit、普通 http 库 - 失败

  3. 如果一台设备通过蜂窝网络连接,另一台通过 wifi 连接,则工作正常。但是,我看到即使使用连接到蜂窝网络而不是 wifi 的 2 个设备也失败了。

  4. 很容易重现。一个应用程序运行良好。一旦我在另一台设备上进行操作。第一个应用将无法连接。

  5. 使用相同 api/server 的 iOS 应用程序运行良好。没有失败

  6. 失败时我在安卓应用上运行了wireshark,收到如下信息:

70 47.073286 10.0.0.1 10.0.0.138 ICMP 120 目的地不可达(端口不可达)

似乎是端口问题。我不确定这是服务器问题还是客户端问题。iOS 应用程序运行良好。没有问题。仅限安卓。

我试过了:

System.setProperty("http.keepAlive", "false");

我尝试设置一个 http 标头“connection :close”没有任何效果...

任何想法将不胜感激......

【问题讨论】:

  • 这是服务器问题。您的服务器拒绝连接到第二个客户端,因为这是 https 连接,我假设您需要使用一些用户凭据登录到服务器。如果您可以控制服务器架构,我会从那里开始
  • 这就是我最初的想法。但是,为什么 iOS 应用程序可以完美运行?
  • 您是否在具有相同凭据的两台不同设备上尝试了 iOS 应用,并且运行良好。
  • 是的。我们对 iOS 应用程序没有任何问题。
  • 不要使用Connection ,close。这可能会导致问题。

标签: android http keep-alive httpconnection


【解决方案1】:

这里有同样的问题。当我的 ios 设备连接到全明星英雄或有趣的运行应用程序时,android 设备无法再连接。我找不到解决办法。我的路由器是 tp link dir 615 。可能问题出在 frpm 路由器上。

【讨论】:

  • 就我而言,这是服务器端问题。 IT 人员给了我以下信息:“tcp 内核设置上的标志不正确”“重用连接”这就是我为您准备的全部内容。希望对你有帮助
【解决方案2】:

归根结底,这是服务器端问题。 IT 人员给了我以下信息:“tcp 内核设置上的标志不正确”“重用连接”这就是我为您准备的全部内容。希望它可以帮助别人

【讨论】:

    【解决方案3】:

    我遇到了同样的问题。问题似乎是当应用程序尝试访问 TIME_CLOSE 中的端口时,here 很好地解释了这是如何发生的,将 tcp 内核 更改为 重用连接,可能会解决问题,因为服务器将再次尝试在 TIME_CLOSE 重新使用这些连接。但它必须是客户端的解决方案,以避免连接卡住。在我的情况下,我试图从多个活动创建连接,我猜他们以某种方式竞争打开和关闭连接,我使用单个活动来解决问题以建立与服务器的连接。

    希望这对某人有用。

    【讨论】:

    • 是的。这就是我的解决方案。如果对您有帮助,请投票。
    【解决方案4】:

    遇到了完全相同的问题并花了很多时间进行调查,但没有任何帮助,包括“重用连接”标志,还尝试禁用 tcp_timestamp、tcp_tw_reuse、tcp_tw_recycle 并按照此处的建议为应用启用 vm 安全模式:

    但一切都井井有条。

    此外,非常奇怪的是,我有两个不同的实例/服务器,为了追踪问题,我制作了完全相同的实例/服务器,而一个服务器没有任何问题。

    所以最后:

    实例重启解决了连接问题。 (或者只需要重启网络服务)

    (c) 我的服务器/实例管理员

    【讨论】:

      猜你喜欢
      • 2015-07-23
      • 2018-07-12
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      • 2022-11-15
      相关资源
      最近更新 更多