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

Android:连接到家庭wifi之外的家庭服务器,android,web-services,network-programming,android-volley,android-wifi,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 ser

我目前正在开发一款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";
我尝试将默认网关添加到字符串中,如下所示:

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";
但这并不奏效。我错过了什么


另外,我正在使用android volley通过网络进行通信

这并不是回答这个问题的正确地点,因为它很可能与Android无关,而是关于网络

从您提供的少量信息中,我最好的猜测是您从网络外部接入了错误的IP

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

  • 查找家庭网络的IP地址。你可以很容易地发现,让我们假装它告诉你IP是12.23.45.56

  • 现在,当您将网络外的设备指向12.23.45.56:2345时,路由器将识别该端口上的通信需要转发到本地地址192.168.0.100。因此,您现在将服务器的url设置为

  • 字符串服务器\u url=”http://12.23.45.56:2345/getarrayinfo.php";


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

    这并不是解决这个问题的正确地方,因为它很可能与Android无关,而是关于网络

    从您提供的少量信息中,我最好的猜测是您从网络外部接入了错误的IP

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

  • 查找家庭网络的IP地址。你可以很容易地发现,让我们假装它告诉你IP是12.23.45.56

  • 现在,当您将网络外的设备指向12.23.45.56:2345时,路由器将识别该端口上的通信需要转发到本地地址192.168.0.100。因此,您现在将服务器的url设置为

  • 字符串服务器\u url=”http://12.23.45.56:2345/getarrayinfo.php";


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

    您无法在此网站中找到信息,因为网络基础结构已脱离主题。您无法在此网站中找到信息,因为网络基础结构已脱离主题。或者,您可以尝试为自己获取域名,然后使用动态DNS确保您的域名始终绑定到正确的ip地址。或者您可以尝试为自己获取域名,然后使用动态DNS确保您的域名始终绑定到正确的ip地址。