有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓 java。网ConnectException:无法连接到/192.168.253.3(端口2468):连接失败:ECONREFUSE(连接被拒绝)

我想用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);

这是有关向电脑发送消息的代码:

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: failed to connect to /192.168.253.3 (port 2468): connect failed: ECONNREFUSED (Connection refused)

此外,我使用安卓手机运行应用程序


共 (6) 个答案

  1. # 1 楼答案

    我也遇到了同样的问题,我尝试了多个IP,比如windows和默认网关中的公共IP和本地主机默认IP 127.0.0.1,但响应相同。 但我忘了过去看看

    C:> ipconfig
    

    ipconfig清晰地说出我连接的适配器的实际IP地址,就像我连接Wifi适配器一样,我的IP地址将显示为:

    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
    

    我希望这对你有帮助

  2. # 2 楼答案

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

  3. # 3 楼答案

    A connect failed: ECONNREFUSED (Connection refused)很可能意味着该端口和该IP地址上没有监听内容。可能的解释包括:

    • 服务已崩溃或尚未(成功!)开始
    • 您的客户端试图使用错误的IP地址或端口进行连接
    • 您的客户端试图使用解析为错误IP的DNS名称进行连接,或者
    • 服务器访问被代表服务器/服务“拒绝”的防火墙阻止。这是不太可能的,因为现在的常规做法是让防火墙“屏蔽”所有不需要的连接尝试

    请注意,虽然有一个名为urls的数组变量,但它不能包含真正的URL。不存在以任何形式获取真实URL的Socket构造函数重载。实际上,如果您以如下字符串形式提供URL:

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

    结果将是另一个例外。 同样,如果你试图连接到一个你无法路由到的网络上的IP地址(例如“另一个WiFi网络”),那么你会得到一个不同的例外;e、 g.“找不到主机”、“没有到主机的路由”或“没有到网络的路由”

  4. # 4 楼答案

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

  5. # 5 楼答案

    为什么会发生这种情况:

    1. 服务器无法发送响应:请确保后端在IP和端口上正常工作
    2. SSL连接被阻止:通过导入SSL证书修复此问题

    不太可能:

    1. 未发送饼干
    2. 请求超时:更改请求超时
  6. # 6 楼答案

    在开发运行在dev机器上的虚拟设备上的android应用程序时,一个常见的错误是忘记了虚拟设备与dev机器不是同一主机。因此,如果您的服务器在您的开发机器上运行,则不能使用“http://localhost/…”url,它将在虚拟设备上查找服务器端点,而不是在您的开发人员机器上