【发布时间】:2015-11-01 23:15:01
【问题描述】:
在这个非常基本的客户端/服务器套接字程序中,为什么我的客户端套接字从不连接并抛出java.net.ConnectException?我在一台计算机上运行 MessageServer 程序,在同一网络上的另一台笔记本电脑上运行 ClientServer 程序。我已经使用该计算机上的 windows cmd 中的 ipconfig 命令验证了运行服务器程序的计算机的本地 IP 是 10.0.0.1。
服务器:
package server;
import java.net.*;
import java.io.*;
public class MessageServer {
public static void main(String args[]) {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(4302);
}
catch (Exception e) {
System.out.println("well bad news...");
}
boolean noConnection = true;
while(noConnection == true) {
try {
Socket client = serverSocket.accept();
System.out.println("socket connection accepted:" + client.getRemoteSocketAddress().toString());
noConnection = false;
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("fail");
}
}
}
}
客户:
import java.net.*;
import java.io.*;
public class MessageClient {
public static void main(String args[]) {
Socket clientSocket = null;
String recieve;
try {
clientSocket = new Socket("10.0.0.1", 4302);
} catch (Exception e) {
System.out.println("deal with it...");
e.printStackTrace();
}
}
}
当我运行这两个程序时,我在客户端机器上得到以下结果:
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at MessageClient.main(MessageClient.java:10)
服务器机器上没有问题。
编辑: 我尝试禁用我的互联网安全(Norton 360),但没有帮助。此外,我正在(在两台计算机上)运行 Windows 10、Java 8 Update 65、Eclipse IDE Mars 1
编辑 2: 如果有帮助,我尝试在一台计算机上运行程序的两个部分,这可行。所有迹象都指向 Windows 防火墙问题。我会尽快解决这个问题。
【问题讨论】:
-
最可能的原因:Windows 防火墙。
-
@HarryJohnston 惊讶,微软 Windows 把我搞砸了。哦等等,没关系.. =\.
标签: java windows sockets network-programming serversocket