Подключение к LocalHost / 10.0.2.2 из Android-эмулятора отключено

Хотя этот вопрос задавался несколько раз в StackOverflow, и я прошел через многие из них, но я не мог решить свою проблему, или я не могу выяснить причину проблемы. Отсюда, отправляя новый вопрос.

Ниже приведен список ссылок, которые я просмотрел –

  1. Как подключиться к моему http: // localhost веб-серверу от Android Emulator в Eclipse

  2. Доступ к локальному хосту: порт с эмулятора Android

  3. Как я могу получить доступ к моему локальному хосту с моего устройства Android?

  4. как подключиться к localhost в эмуляторе Android?

Вот мой код –

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; } 

Я пытаюсь подключить Android с базой данных MySQL, используя PHP через WAMP-сервер. Файл PHP (user_registration.php) сохраняется в следующем пути –

 C:\wamp\www\android_connect 

Теперь после выполнения кода я получаю сообщение об ошибке « java.net.SocketTimeoutException: не удалось подключиться к / 10.0.2.2 (порт 8080) после 720000000ms: isConnected failed: ETIMEDOUT (Connection timed out) ».

Я рассмотрел конкретную ссылку, чтобы решить эту проблему –

Android-соединение с локальным хостом

Но не мог понять, как это было разрешено! 🙂

Не могли бы вы помочь мне в этом случае? Обратите внимание, что я использую Android Studio для моей сборки.

Заранее спасибо!

Я выяснил причину, почему он не работает. Было два вопроса –

  1. IP-адрес был неправильным. Поэтому я изменил IP-адрес с 10.0.2.2 на IPv4 адрес.

  2. Также номер порта 8080 был неправильным. Я установил свой собственный номер порта в файле httpd.conf , например ##Listen 12.34.56.78:8383Listen 0.0.0.0:8383Listen [::0]:8383## , под Apache, и я использовал то же самое.

После изменения обоих и повторного запуска WAMP-сервера он работал как шарм.

Выполнение соединения с вашим Android на ваш компьютер работает с 10.0.2.2 только на Виртуальном устройстве Google Android. Android Virtual Devices прослушивают 10.0.2.2 и перенаправляют все запросы на ваш компьютер.

Genymotion Android Virtual Devices прослушивают 10.0.2.3 и перенаправляют эти запросы на ваш компьютер.

10.0.2.2 не работает с вашим реальным устройством Android. Если вы хотите использовать его на своем реальном устройстве, вам нужно установить IP-адрес вашего компьютера, как было предложено в предыдущем ответе.