Java 从Android Emulator连接到LocalHost/10.0.2.2超时

Java 从Android Emulator连接到LocalHost/10.0.2.2超时,java,php,android,post,localhost,Java,Php,Android,Post,Localhost,尽管这个问题在StackOverflow中被问了很多次,我也经历了很多次,但我仍然无法解决我的问题,或者我无法找到问题的根本原因。因此,发布了一个新问题 下面是我浏览过的链接列表-- 这是我的密码-- 我正在尝试通过WAMP服务器使用PHP连接Android和MySQL数据库。PHP文件(user_registration.PHP)保存在下面的路径中-- 现在,在执行代码之后,我得到了一个错误,如“java.net.SocketTimeoutException:720000000ms之后

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

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

  • 这是我的密码--

    我正在尝试通过WAMP服务器使用PHP连接Android和MySQL数据库。PHP文件(user_registration.PHP)保存在下面的路径中--

    现在,在执行代码之后,我得到了一个错误,如“java.net.SocketTimeoutException:720000000ms之后连接到/10.0.2.2(端口8080)失败:断开连接失败:ETIMEDOUT(连接超时)

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

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

    你能帮我解决这个问题吗?请注意,我正在使用Android Studio进行构建


    提前谢谢

    我已经找到了它不起作用的原因。 有两个问题——

  • IP地址不正确。因此,我将IP地址从
    10.0.2.2
    更改为
    IPv4
    地址-可以在windows上通过在命令提示符中键入
    ipconfig
    来获得该地址,请参阅for linux

  • 端口号8080也不正确。我在
    httpd.conf
    文件中设置了自己的端口号,如
    ###Listen 12.34.56.78:8383 Listen 0.0.0:8383 Listen[::0]:8383##
    ,在Apache下,我使用了相同的方法


  • 在更改了这两个选项并重新启动WAMP服务器后,它的工作非常出色。

    从Android连接到计算机仅在Google Android虚拟设备上使用10.0.2.2。Android虚拟设备正在监听10.0.2.2并将所有请求转发到您的计算机

    Genymotion Android虚拟设备正在监听10.0.2.3并将这些请求转发到您的计算机


    10.0.2.2不适用于您真正的Android设备。如果您想在真实设备上使用它,您必须设置计算机的IP,正如前面的答案所建议的那样。

    为什么要选择localhost或在emulator或真实设备上运行的任何IP地址,只需使用非常方便和最简单的方法将localhost转换为全局地址即可

    在我的情况下,我的android设备上运行了以下代码:

    private static final String BACKEND_URL = "http://10.0.2.2:4242/"; // 10.0.2.2 is the Android emulator's alias to localhost
    

    但我的服务器代码是在我的电脑上运行的。因此,由于我的电脑和我的安卓设备“不是同一台设备”,这就是为什么”http://10.0.2.2:4242/“没用。解决办法是改变。”http://10.0.2.2:4242/到“https://:4242/”

    你能解释一下“所以我把IP地址从10.0.2.2改成了IPv4地址”吗?ThanksI在代码中使用10.0.2.2作为我的IP地址,这是不正确的。因此,我将其更改为IPv4地址。然后它开始工作。IPv4地址是什么?@domji84——进入
    命令提示符
    ,键入
    ipconfig
    ,它将列出IP地址。您可以在那里找到
    IPv4
    地址。地址为
    10.0.3.2
    有关Genymotion的最新版本,请参阅
    C:\wamp\www\android_connect
    
    private static final String BACKEND_URL = "http://10.0.2.2:4242/"; // 10.0.2.2 is the Android emulator's alias to localhost