连接到服务器端口8080的Android应用程序

时间:2015-04-09 19:29:08

标签: android sockets wifi 4g

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

服务器:8080

  • WiFi上的电话(ANY) - 正常工作
  • 4G电话 - 失败



服务器:80

  • WiFi上的电话(ANY) - 正常工作
  • 4G上的电话 - 作品


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

是否有一些我缺少的东西让它在一个不常见的端口上工作?

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

由于

2 个答案:

答案 0 :(得分:1)

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

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

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

如果您可以通过WiFi而不是Cellular连接,那么您的提供商正在做他们真的不应该做的事情。

如果浏览器可以连接到您服务器的端口8080而您的应用无法连接,则说明它与您的应用有关。

答案 1 :(得分:0)

我遇到了完全相同的问题 - 中间件服务运行"非标准"端口,如8081,8082,8997,...为了爱我,我无法通过手机访问它们,但只有在我连接到celluar网络的情况下。我一直得到504,网关超时。

我在我的linux服务器上运行tcpdump,在那里我一直在运行我的微服务,甚至没有看到任何入站流量,所以我知道问题必须在那之前。

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

无论如何,对于其他有同样问题的人 - 是的,如果连接到celluar,确实不允许使用某些端口号。