Android:连接家庭wifi以外的家庭服务器

时间:2016-12-27 20:13:49

标签: android web-services network-programming android-volley android-wifi

我目前正在开发一个与我的家庭服务器通信的Android应用程序。该应用程序的目标是与服务器通信并显示服务器上的名称列表。当我的手机连接到家庭wifi时,这一切都正常,但是,当我切换到移动网络或转到另一个wifi位置时,应用程序无法显示名称。在我的代码中,我使用一个字符串将ipv4地址存储到我的家庭服务器,如下所示:

String server_url = "http://my home server ipv4 address/getarrayinfo.php";

我尝试将默认网关添加到字符串中,如下所示:

String server_url = "http://my default gateway address/my home server ipv4 address/getarrayinfo.php";

但是这没用。我在这里缺少什么?

P.S。我正在使用android排球通过网络进行通信。

1 个答案:

答案 0 :(得分:2)

这个问题确实不是正确的地方,因为它很可能与Android无关,而且与网络有关。

根据您提供的少量信息,我最好的猜测是您从网络外部访问错误的IP。

  1. 您需要在路由器上打开一个端口,指向您的家庭服务器ipv4地址" (假装你选择端口#2345,你的家庭服务器IP是192.168.0.100)。这非常简单,可以通过192.168.0.1或10.0.0.1进行设置,具体取决于您的路由器。将TCP端口2345指向192.168.0.100。

  2. 找出您家庭网络的IP地址。您可以通过转到http://www.whatsmyip.org/轻松找到它。让我们假装它告诉您IP是12.23.45.56

  3. 现在,只要您将设备指向网络外的12.23.45.56:2345,您的路由器就会识别该端口上的通信需要转发到本地地址192.168.0.100。所以你现在将server_url设置为

  4. String server_url = "http://12.23.45.56:2345/getarrayinfo.php";

    我还想提一下,您的家庭网络可能没有静态IP地址 - 这意味着每次路由器重新启动它时都会得到一些不是12.23.45.56的新内容,所以如果路由器重新启动,您必须更新代码。您可以通过向ISP支付每月10美元并让他们为您的家庭分配静态IP来避免这种情况。