You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨设备Java Socket连接报错java.net.ConnectException求助

解决跨设备Java Socket连接被拒绝的问题

嘿,我一眼就看出你遇到的核心问题是跨设备Socket连接的地址配置错了——同机运行正常是因为localhost指向本机,但跨设备时这个地址完全没用。下面一步步帮你搞定:

1. 客户端的致命错误:别再用localhost了!

你客户端代码里写的Socket clientSocket = new Socket("localhost", port);是问题根源!localhost(也就是127.0.0.1)是本机回环地址,只有在同一台机器上才能访问到服务器。跨设备时,你得把这里换成服务器所在电脑的实际WiFi IP地址。

怎么找服务器的WiFi IP?

  • Windows:打开命令提示符,敲ipconfig,找到WiFi适配器下的IPv4地址(比如192.168.3.105)
  • macOS/Linux:打开终端,敲ifconfig(或ip addr),找到WiFi接口的inet地址(别选127.0.0.1)

修改后的客户端代码应该改成这样:

// 先让用户输入服务器的WiFi IP
System.out.println("Please input the server's WiFi IP address");
String serverIp = in.next();
System.out.println("Please input the port number");
int port = in.nextInt();
Socket clientSocket = new Socket(serverIp, port);

2. 服务器的潜在坑:确保监听所有网络接口

你现在用new ServerSocket(port)其实默认会绑定到0.0.0.0(所有可用网络接口),理论上能接受其他设备的连接,但有些环境下可能会被限制。如果改完客户端还是不行,可以显式指定绑定到服务器的WiFi IP:

修改服务器的ServerSocket初始化部分:

// 先让用户输入服务器的WiFi IP
System.out.println("Please input the server's WiFi IP address (e.g., 192.168.3.105)");
String serverIp = in.next();
System.out.println("Please input the port number");
int port = in.nextInt();
try {
    // 显式绑定到服务器的WiFi IP,连接队列长度设为8(默认值)
    serverSocket = new ServerSocket(port, 8, InetAddress.getByName(serverIp));
    made = true;
} catch (IOException e){
    System.out.println("Could not listen on port " + port + " with IP " + serverIp);
    e.printStackTrace();
}

3. 先确认两台设备能互相ping通

在客户端电脑上,先ping一下服务器的WiFi IP,确认网络是通的:

ping 服务器的IP地址

如果ping不通,那肯定连不上Socket:

  • 确保两台设备连的是同一个WiFi网络(别一个连2.4G,一个连5G却不在同一子网)
  • 再检查服务器的防火墙:要么关掉,要么允许Java程序通过防火墙(很多系统会弹权限提示,记得选允许)

4. 验证服务器端口真的在监听

在服务器电脑上,用命令看看端口是不是被Java程序占着:

  • Windows:敲netstat -ano | findstr :端口号,找LISTENING状态的条目,确认PID是Java进程的
  • macOS/Linux:敲lsof -i :端口号或netstat -tulpn | grep :端口号,看Java进程在监听该端口

最后按这个步骤测试

  1. 先启动服务器,输入服务器的WiFi IP和端口
  2. 再启动客户端,输入同一个服务器IP和端口
  3. 正常情况下应该能看到服务器输出"accepted",客户端输出"client established"

对了,你的服务器代码最后有两行重复的serverSocket.close();,删掉一个吧,免得触发不必要的异常。

内容的提问来源于stack exchange,提问作者cuzynot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:39:23