从安卓模拟器连接到本地主机/10.0.2.2 超时

2022-08-31 00:58:09

尽管这个问题在StackOverflow中被问过多次,并且我经历了其中的许多问题,但我仍然无法解决我的问题,或者我无法找出问题的根本原因。因此,发布一个新问题。

以下是我浏览过的链接列表 -

  1. 如何在 Eclipse 中从 Android Emulator 连接到我的 http://localhost Web 服务器

  2. 访问本地主机:从安卓模拟器移植

  3. 如何从我的安卓设备访问我的本地主机?

  4. 如何在安卓模拟器中连接本地主机?

这是我的代码——

protected Void doInBackground(Void... params)
    {
        try
        {
            HttpURLConnection connection = null;

            URL url = new URL("http://10.0.2.2:8080/android_connect/user_registration.php");
            connection = (HttpURLConnection)url.openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestMethod("POST");
            connection.setUseCaches(false);
            connection.setConnectTimeout(720000000);
            connection.setReadTimeout(72000000);
            connection.connect();

            OutputStreamWriter output = new OutputStreamWriter(connection.getOutputStream());
            output.write(emp_details.toString());
            output.flush();
            output.close();

            HttpResult = connection.getResponseCode();

            connection.disconnect();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }

我正在尝试通过WAMP服务器使用PHP将Android与MySQL数据库连接起来。PHP 文件(user_registration.php)保存在以下路径中 -

C:\wamp\www\android_connect

现在,在执行代码后,我收到类似“java.net.SocketTimeoutException:在720000000ms之后无法连接到/ 10.0.2.2(端口8080):isConnected failed:ETIMEDOUT(连接超时)”的错误。

我通过特定的链接来解决这个问题 -

安卓连接到本地主机

但无法理解它是如何解决的!:)

在这种情况下,你能帮帮我吗?请注意,我正在使用Android Studio进行构建。

提前致谢!


答案 1

从安卓设备连接到电脑仅适用于 10.0.2.2 版,且仅适用于 Google 安卓虚拟设备。Android 虚拟设备正在侦听 10.0.2.2 并将所有请求转发到您的计算机。

Genymotion Android Virtual Devices正在监听10.0.2.3并将这些请求转发到您的计算机。

10.0.2.2 不适用于您的真实安卓设备。如果要将其与真实设备一起使用,则必须设置计算机的IP,正如先前答案所建议的那样。


答案 2

我已经弄清楚了它不起作用的原因。有两个问题——

  1. IP 地址不正确。因此,我将IP地址从更改为地址 - 可以通过在命令提示符下键入并在Windows上查看linux的链接来获取该地址10.0.2.2IPv4ipconfig

  2. 此外,端口号 8080 不正确。我已经在文件中设置了自己的端口号,例如,在Apache下,我使用了相同的端口号。httpd.conf##Listen 12.34.56.78:8383Listen 0.0.0.0:8383Listen [::0]:8383##

在更改两者并重新启动WAMP服务器后,它就像一个魅力。


推荐