Entel
Entel

Reputation: 649

java.net.ConnectException: failed to connect to /192.168.253.3 (port 2468): connect failed: ECONNREFUSED (Connection refused)

I want to transfer some data between PC and a mobile phone with WiFi.

This is how I get the WiFi IP address:

String ip  = String.format(
                    "%d.%d.%d.%d",
                    (wifiInfo.getIpAddress() & 0xff),
                    (wifiInfo.getIpAddress() >> 8 & 0xff),
                    (wifiInfo.getIpAddress() >> 16 & 0xff),
                    (wifiInfo.getIpAddress() >> 24 & 0xff));

new Recive().execute(ip);

This is the code about sending a message to the PC:

Socket socket = null;
String message = "test\r\n";
protected Void doInBackground(String... urls) {
    try {
        Log.i("ip", urls[0]);
        socket = new Socket(urls[0], 2468);
        toserver = new DataOutputStream(socket.getOutputStream());
        toserver.writeBytes(message);

        toserver.flush();
        toserver.close();
        socket.close();
        return null;
    } catch (Exception e) {
        Log.i("e", e.toString());
        return null;
    }
}

But an error occurs,

java.net.ConnectException: failed to connect to /192.168.253.3 (port 2468): connect failed: ECONNREFUSED (Connection refused)

Besides, I use a android phone to run the app.

Upvotes: 44

Views: 181176

Answers (10)

Lloyd Munyai
Lloyd Munyai

Reputation: 81

I see everyone is trying their best on answering this question with technical solution, this can also happen when you don't have internet connection on your device. So you can have connection but without internet, meaning you don't have mobile data or your wifi device is not having data.

Upvotes: 1

sajjad3277
sajjad3277

Reputation: 259

i have solve this error, look you cannot use localhost or 127.0.0.1, you have to use your ipv4 address, type ipconfig in your command prompt and copy ipv4 address and paste it in your code instead of local host.

Upvotes: 1

Stephen C
Stephen C

Reputation: 719249

A connect failed: ECONNREFUSED (Connection refused) most likely means that there is nothing listening on that port AND that IP address. Possible explanations include:

  • the service has crashed or hasn't been (successfully!) started,
  • your client is trying to connect using the wrong IP address or port,
  • your client is trying to connect using a DNS name that resolves to the wrong IP, or
  • server access is being blocked by a firewall that is "refusing" on the server/service's behalf. This is pretty unlikely given that normal practice (these days) is for firewalls to "blackhole" all unwanted connection attempts.

It is also possible that you are using a local proxy server when you shouldn't be ... or vice versa. This can happen if you are using a corporate network where access to external networks is restricted or monitored. Check with your local network team and/or check that your proxy settings are correct.


Note that while you have an array variable called urls, it cannot contain real URLs. There is no overload of the Socket constructor that takes a real URL in any form. Indeed, if you supplied a URL in string form like this:

 new Socket("http://example.com", 42)

the result would be a different exception. Likewise, if you attempt to connect to an IP address on a network that you can't route to (e.g. "a different WiFi network"), then you will get a different exception; e.g. "host not found", "no route to host" or "no route to network".

Upvotes: 27

user5091911
user5091911

Reputation: 123

First, I used localhost:port format and appeared this error. Then I changed the address to ip:port format and the problem solved.

Upvotes: 0

Tanvi Agarwal
Tanvi Agarwal

Reputation: 156

My problem was solved after turning Off Windows Firewall Defender in public network as I was connected with that network.

Upvotes: 0

Jaydev
Jaydev

Reputation: 1812

Why this might have happened:

  1. The server couldn't send a response: Ensure that the backend is working properly at IP and port mentioned.
  2. SSL connections are being blocked: Fix this by importing SSL certificates

Less likely:

  1. Cookies not being sent
  2. Request timeout: Change request timeout

Upvotes: 8

Siddharth
Siddharth

Reputation: 1

check the name of the database in a file where you established a connection.

Upvotes: -1

shkolnik 225
shkolnik 225

Reputation: 1

I solved the same problem, I used a network connection through a proxy server, when I selected the option not to use proxies for internal and local connections, the problem disappeared

Upvotes: 0

Osama Saeed
Osama Saeed

Reputation: 149

I was also getting the same issue I tried multiple IPs like my public IP and localhost default IP 127.0.0.1 in windows and default gateway but same response. but I forget to check by

C:> ipconfig

ipconfig cleanly say what is my actual IP address of that adapter with which I have connected like I was connected with Wifi adapter my IP address will show me as:

Wireless LAN adapter Wireless Network Connection:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::69fa:9475:431e:fad7%11
   IPv4 Address. . . . . . . . . . . : 192.168.15.92

I hope this will help you.

Upvotes: 2

Farrukh Najmi
Farrukh Najmi

Reputation: 5316

A common mistake during development of an android app running on a Virtual Device on your dev machine is to forget that the virtual device is not the same host as your dev machine. So if your server is running on your dev machine you cannot use a "http://localhost/..." url as that will look for the server endpoint on the virtual device not your dev machine.

Upvotes: 16

Related Questions