java.net.ConnectException:无法连接到 /192.168.253.3(端口 2468):连接失败:ECONNREFUSED(连接被拒绝)
java.net.ConnectException: failed to connect to /192.168.253.3 (port 2468): connect failed: ECONNREFUSED (Connection refused)
我想通过 WiFi 在 PC 和手机 phone 之间传输一些数据。
这是我获取 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: failed to connect to /192.168.253.3 (port 2468): connect failed: ECONNREFUSED (Connection refused)
此外,我使用 android phone 到 运行 应用程序。
A connect failed: ECONNREFUSED (Connection refused)
很可能意味着该端口和该 IP 地址上没有任何监听。可能的解释包括:
- 服务已崩溃或尚未(成功!)启动,
- 您的客户端正在尝试使用错误的 IP 地址或端口进行连接,
- 您的客户端正在尝试使用解析为错误 IP 的 DNS 名称进行连接,或者
- 服务器访问被 "refusing" 代表 server/service 的防火墙阻止。这是 非常不可能 鉴于正常做法(这些天)是防火墙 "blackhole" 所有不需要的连接尝试。
请注意,虽然您有一个名为 urls
的数组变量,但它不能包含真正的 URL。 Socket
构造函数没有任何形式的重载,它采用任何形式的真实 URL。实际上,如果您以这样的字符串形式提供 URL:
new Socket("http://example.com", 42)
结果将是不同的异常。
同样,如果您尝试连接到您无法路由到的网络上的 IP 地址(例如 "a different WiFi network"),那么您将得到一个不同的异常;例如"host not found"、"no route to host" 或 "no route to network"。
为什么会这样:
- 服务器无法发送响应:确保后端在提到的 IP 和端口上正常工作。
- SSL 连接被阻止:通过导入 SSL 证书解决此问题
不太可能:
- 未发送 Cookie
- 请求超时:更改请求超时
在您的开发机器上的虚拟设备上开发 android 应用程序 运行 期间的一个常见错误是忘记虚拟设备与您的开发机器不是同一主机。因此,如果您的服务器在您的开发机器上是 运行,则您不能使用“http://localhost/...”url,因为它会在虚拟设备而不是您的开发机器上查找服务器端点。
我也遇到了同样的问题,我尝试了多个 IP,比如我的 public IP 和 windows 中的本地主机默认 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
希望对您有所帮助。
首先,我使用了localhost:port
格式,出现了这个错误。然后我把地址改成ip:port
格式,问题就解决了
您可以将域转换为 IP 地址
因为每个域都有特定的 IP 地址,那么您将解决该问题。
我希望这能帮到您。
我解决了同样的问题,我通过代理服务器使用网络连接,当我选择不使用代理进行内部和本地连接时,问题消失了
检查您建立连接的文件中的数据库名称。
在 public 网络中关闭 Windows Firewall Defender 后我的问题得到解决,因为我已连接到该网络。
我有同样的错误,因为我的设备连接在与计算机不同的网络中
我想通过 WiFi 在 PC 和手机 phone 之间传输一些数据。
这是我获取 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: failed to connect to /192.168.253.3 (port 2468): connect failed: ECONNREFUSED (Connection refused)
此外,我使用 android phone 到 运行 应用程序。
A connect failed: ECONNREFUSED (Connection refused)
很可能意味着该端口和该 IP 地址上没有任何监听。可能的解释包括:
- 服务已崩溃或尚未(成功!)启动,
- 您的客户端正在尝试使用错误的 IP 地址或端口进行连接,
- 您的客户端正在尝试使用解析为错误 IP 的 DNS 名称进行连接,或者
- 服务器访问被 "refusing" 代表 server/service 的防火墙阻止。这是 非常不可能 鉴于正常做法(这些天)是防火墙 "blackhole" 所有不需要的连接尝试。
请注意,虽然您有一个名为 urls
的数组变量,但它不能包含真正的 URL。 Socket
构造函数没有任何形式的重载,它采用任何形式的真实 URL。实际上,如果您以这样的字符串形式提供 URL:
new Socket("http://example.com", 42)
结果将是不同的异常。 同样,如果您尝试连接到您无法路由到的网络上的 IP 地址(例如 "a different WiFi network"),那么您将得到一个不同的异常;例如"host not found"、"no route to host" 或 "no route to network"。
为什么会这样:
- 服务器无法发送响应:确保后端在提到的 IP 和端口上正常工作。
- SSL 连接被阻止:通过导入 SSL 证书解决此问题
不太可能:
- 未发送 Cookie
- 请求超时:更改请求超时
在您的开发机器上的虚拟设备上开发 android 应用程序 运行 期间的一个常见错误是忘记虚拟设备与您的开发机器不是同一主机。因此,如果您的服务器在您的开发机器上是 运行,则您不能使用“http://localhost/...”url,因为它会在虚拟设备而不是您的开发机器上查找服务器端点。
我也遇到了同样的问题,我尝试了多个 IP,比如我的 public IP 和 windows 中的本地主机默认 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
希望对您有所帮助。
首先,我使用了localhost:port
格式,出现了这个错误。然后我把地址改成ip:port
格式,问题就解决了
您可以将域转换为 IP 地址 因为每个域都有特定的 IP 地址,那么您将解决该问题。 我希望这能帮到您。
我解决了同样的问题,我通过代理服务器使用网络连接,当我选择不使用代理进行内部和本地连接时,问题消失了
检查您建立连接的文件中的数据库名称。
在 public 网络中关闭 Windows Firewall Defender 后我的问题得到解决,因为我已连接到该网络。
我有同样的错误,因为我的设备连接在与计算机不同的网络中