0

我目前工作的一个Android应用程序,与我的家庭服务器通信之外。该应用程序的目标是与服务器通信并显示服务器上的名称列表。当我的手机连接到我的家庭WiFi这一切工作正常,但是,当我切换到移动网络或转到其他WiFi位置的应用程序无法显示姓名。在我的代码,我使用一个字符串来存储IPv4地址到我的家庭服务器是这样的:安卓:连接到家庭服务器的家庭WiFi

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 volley通过网络进行通信。

+0

由于网络基础设施是无关紧要的 – pedrofb

回答

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到

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

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

+0

或者您可以尝试为自己获取域名,然后使用动态DNS确保您的域名始终绑定到正确的IP地址,您无法在此站点中找到相关信息。 – xwz7611