Android App无法连接到本地服务器

时间:2016-03-15 04:48:11

标签: android

我正在开发一个依赖于节点服务器的android应用程序。我希望能够在本地测试我的Android应用程序和节点服务器。

我的节点服务器在我的计算机上运行并尝试从我的Android应用程序(在我的物理设备上)访问它导致404错误代码。

但是,如果我在我的计算机上模拟android,完全相同的代码将起作用。当我从手机的浏览器访问服务器时,服务器也可以工作。

我尝试使用以下代码来检测服务器,以防我的计算机的IP发生变化。

            byte[] ip = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(((WifiManager) activity.getSystemService(activity.WIFI_SERVICE)).getConnectionInfo().getIpAddress()).array();
            for(int i = 0; i < 256; i++) {
                ip[3] = (byte)i;
                try {
                    InetAddress addr = InetAddress.getByAddress(ip);
                    System.out.println("trying " + addr.getHostAddress());
                    if(addr.isReachable(5000)) {
                        System.out.println("yes");
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

并没有对我的电脑的IP地址说“是”。

我在想这个错吗?还有另外一种方法吗?我有没有想过的设置?

1 个答案:

答案 0 :(得分:0)

我实际上发现有一个命令可以将移动设备的转发请求发送到您的计算机,这使得您无需编写IP检查代码。只需使用以下adb命令

adb reverse tcp:8080 tcp:8080

其中8080​​是您的端口号,左侧是您的手机正在击中的端口,右侧是您的服务器上运行的端口,因此您可以混合和匹配这些号码

当然,您只能在手机硬连线时运行此命令,并且每次断开手机时都必须运行此命令。