【问题标题】:Android app that connects to server port 8080连接到服务器端口 8080 的 Android 应用程序
【发布时间】:2015-06-15 08:05:26
【问题描述】:

所以我在业余时间一直在开发和开发安卓应用程序以获得乐趣。此应用程序打开与我的家庭服务器的连接,该服务器正在运行 java 程序,进行一些计算并发送响应。问题是我不想使用端口 80。如果手机在 WiFi 上,我可以使用任何我想要的端口进行连接,比如 8080。这适用于任何 WiFi 连接,即使在我的家庭网络之外。但是切换到4G,连接失败。

服务器:8080

  • WiFi 电话(任意)- 工作
  • 4G 电话 - 失败



服务器:80

  • WiFi 电话(任意)- 工作
  • 4G 电话 - 工作


我将服务器切换到侦听端口 80 和我的应用程序以使用相同的连接,现在连接在 4G 和 WiFi 上都有效。

我是否缺少使它在不常见端口上工作的东西?

或者这是 4G 连接的限制。

谢谢

【问题讨论】:

  • 你的故事和场景不完整。它错过了使用的IP地址。
  • Is there something I am missing to make it work on an uncommon port?。是的。

标签: android sockets wifi 4g


【解决方案1】:

我可以向您保证,这不是 4G 的问题,它只是 IP 连接。端口是 UDP/TCP 的一部分,只是 IP 网络的“数据”。

但是,您的蜂窝供应商可能有防火墙阻止某些端口的流量。 PortQuiz 公共网站侦听所有端口。使用手机上的浏览器,尝试连接各种端口,看看哪些是成功的,哪些是不成功的。

http://portquiz.net:8080 
http://portquiz.net:8 
http://portquiz.net:666 

如果您可以通过 WiFi 但不能通过蜂窝网络连接,那么您的提供商正在做他们真正不应该做的事情。

如果浏览器可以连接到你的服务器的8080端口,而你的应用不能,那就是和你的应用有关。

【讨论】:

  • 感谢 Brian 的回复和指点。我能够通过 4G 和端口 8080 连接,并在手机浏览器中收到来自服务器的响应。我将不得不在我的应用程序中查看我的 TCP 连接,看看我是否可以做一些不同的事情。
  • 我不得不说...我不明白为什么你可以在端口 80 而不是 8080 上连接,特别是因为它在 WiFi 上为你工作。端口号并没有什么特别之处。也许您应该包含一些代码和adb log 输出。
  • @TimVanProoyen - 你能分享你得到的响应代码吗 - 这可能有助于解释这个问题。
【解决方案2】:

我遇到了完全相同的问题 - 在“非标准”端口上运行的中间件服务,例如 8081、8082、8997 ......而且为了我的爱,我无法通过手机访问它们,但只能如果我已连接到蜂窝网络。我一直收到 504,网关超时。

我在我的 linux 服务器上运行了 tcpdump,我一直在该服务器上运行我的微服务,甚至没有看到任何入站流量,所以我知道问题一定是在那之前的某个地方。

然而,有趣的是,如果我使用同一提供商从另一部手机制作热站,然后通过 WiFi 连接到该热站,它就可以工作。所以它不能是特定于提供者的。

无论如何,对于遇到同样问题的其他任何人 - 是的,如果连接到蜂窝网络,某些端口号确实是不允许的。

【讨论】:

    猜你喜欢
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 2021-04-22
    • 2015-10-17
    • 2012-09-19
    • 1970-01-01
    相关资源
    最近更新 更多