java.net.ConnectException:无法连接到/192.168.253.3(端口2468):连接失败:ECONNREFUSED(连接被拒绝)

时间:2015-01-27 09:29:58

标签: java android networking wifi

我想通过WiFi在PC和手机之间传输一些数据。

这就是我获取WiFi IP地址的方式:

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

这是关于向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;
    }
}

但是发生错误,

  

java.net.ConnectException:无法连接到/192.168.253.3(端口2468):连接失败:ECONNREFUSED(拒绝连接)

此外,我使用Android手机运行该应用程序。

8 个答案:

答案 0 :(得分:14)

“连接失败:ECONNREFUSED(拒绝连接)”很可能意味着该端口上没有任何内容和该IP地址。可能的解释包括:

  • 服务已崩溃或尚未启动,
  • 您的客户端正在尝试使用错误的IP地址或端口进行连接,或
  • 服务器访问被代表服务器/服务“拒绝”的防火墙阻止。这是不太可能的,因为通常的做法(目前)是防火墙“黑洞”所有不需要的连接尝试。

答案 1 :(得分:4)

为什么会发生这种情况:

  1. 服务器无法发送响应:确保后端在提及的IP和端口上正常工作。
  2. 正在阻止SSL连接:通过导入SSL证书来解决此问题
  3. 未发送Cookie
  4. 请求超时:更改请求超时

答案 2 :(得分:3)

在开发机器上的虚拟设备上运行的Android应用程序开发过程中常见的错误是忘记虚拟设备与开发机器不是同一个主机。因此,如果您的服务器在您的开发机器上运行,则不能使用“http://localhost/ ...”url,因为这将在虚拟设备上查找服务器端点而不是您的开发机器。

答案 3 :(得分:0)

首先,我用“localhost:port”格式遇到了这个错误。然后我将地址改为“ip:port”格式,问题解决了。

答案 4 :(得分:0)

我解决了同样的问题,我通过代理服务器使用了网络连接,当我选择不对内部和本地连接使用代理的选项时,问题就消失了

答案 5 :(得分:0)

在建立连接的文件中检查数据库的名称。

答案 6 :(得分:0)

在我与该网络连接后,在公共网络中关闭Windows Firewall Defender后,我的问题得以解决。

答案 7 :(得分:-2)

您可以将域转换为IP地址 因为每个域都有特定的IP地址,所以您将解决该问题。 我希望这能帮到您。