Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Connection to LocalHost/10.0.2.2 from Android Emulator timed out

Although this question has been asked multiple times in StackOverflow and I went through many of them, still I couldn't resolve my issue or I am not able to find out the root cause of the issue. Hence, posting a new question.

Below are the list of links I went through --

  1. How to connect to my http://localhost web server from Android Emulator in Eclipse

  2. Accessing localhost:port from Android emulator

  3. How can I access my localhost from my Android device?

  4. how to connect localhost in android emulator?

Here goes my code --

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

I am trying to connect Android with MySQL database using PHP through WAMP server. The PHP file (user_registration.php) is being saved in the below path --

C:\wamp\www\android_connect

Now after executing the code, I am getting an error like "java.net.SocketTimeoutException: failed to connect to /10.0.2.2 (port 8080) after 720000000ms: isConnected failed: ETIMEDOUT (Connection timed out)".

I went through the particular link in order to resolve this issue --

Android connection to localhost

But could not understand how it has been resolved! :)

Can you please help me in this case? Please note I am using Android Studio for my build.

Thanks in advance!

like image 512
Saumik Bhattacharya Avatar asked Feb 16 '16 19:02

Saumik Bhattacharya


2 Answers

Accepted answer to this question is really unclear so maybe this will help someone.
Just got the same problem and resolved it by executing "adb reverse tcp:8080 tcp:8080", although after I revoked forwarding, the host machine remained visible and all ports were working, so it is unclear how it works. Make sure that

  • you have no proxy in wifi settings
  • if you have, then 10.0.2.2 is added to bypass without mask
  • that you didn't make a typo, sometimes people put 0 instead of 2 like this 10.0.0.2:8080
like image 175
Roger Avatar answered Sep 22 '22 09:09

Roger


Why to go for localhost or any ip address to run on emulator or real device simply go for ngrok to convert the localhost as a global address with very convenient and simplest way.

like image 33
Zafar Imam Avatar answered Sep 22 '22 09:09

Zafar Imam