Java 从Android Emulator连接到LocalHost/10.0.2.2超时
尽管这个问题在StackOverflow中被问了很多次,我也经历了很多次,但我仍然无法解决我的问题,或者我无法找到问题的根本原因。因此,发布了一个新问题 下面是我浏览过的链接列表-- 这是我的密码-- 我正在尝试通过WAMP服务器使用PHP连接Android和MySQL数据库。PHP文件(user_registration.PHP)保存在下面的路径中-- 现在,在执行代码之后,我得到了一个错误,如“java.net.SocketTimeoutException:720000000ms之后连接到/10.0.2.2(端口8080)失败:断开连接失败:ETIMEDOUT(连接超时)” 我通过特定的链接来解决这个问题-- 但无法理解它是如何解决的!:) 你能帮我解决这个问题吗?请注意,我正在使用Android Studio进行构建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之后
提前谢谢 我已经找到了它不起作用的原因。 有两个问题——
10.0.2.2
更改为IPv4
地址-可以在windows上通过在命令提示符中键入ipconfig
来获得该地址,请参阅for linuxhttpd.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