[英]java.net.connectexception client socket failure
我试图创建服务器,并在同一台wifi下的2台不同计算机上运行服务器和客户端类。 但是,在尝试创建客户端套接字时,我总是遇到此异常
Exception in thread "main" java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at Client.main(Client.java:34)
我的服务器类:
public static void main (String[]args) throws IOException{
Scanner in = new Scanner(System.in);
String fromClient;
String toClient;
boolean made = false;
ServerSocket serverSocket = null;
while (!made){
System.out.println("Please input the port number");
int port = in.nextInt();
try {
serverSocket = new ServerSocket(port);
made = true;
} catch (IOException e){
System.out.println("could not listen on port " + port);
}
}
System.out.println("server socket established");
//ServerSocket serverSocket = new ServerSocket(port, 8, InetAddress.getByName(ip));
Socket client = serverSocket.accept();
System.out.println("accepted");
Scanner sc = new Scanner (client.getInputStream());
PrintStream ps = new PrintStream(client.getOutputStream());
ps.println("agiftfromserver");
while (sc.hasNext()){
fromClient = sc.next();
System.out.println("from client " + fromClient);
toClient = in.next();
ps.println(toClient);
}
in.close();
sc.close();
serverSocket.close();
serverSocket.close();
}
客户:
public static void main (String[]args) throws UnknownHostException, IOException{
Scanner in = new Scanner(System.in);
String fromServer;
String toServer;
//System.out.println("Please input the ip address");
//String ip = in.next();
System.out.println("Please input the port number");
int port = in.nextInt();
Socket clientSocket = new Socket("localhost", port); //ERROR
System.out.println("client established");
//Socket cs = new Socket(ip, port);
Scanner sc = new Scanner(clientSocket.getInputStream());
PrintStream ps = new PrintStream(clientSocket.getOutputStream());
while (sc.hasNext()){
fromServer = sc.next();
System.out.println("from server " + fromServer);
toServer = in.next();
ps.println(toServer);
}
in.close();
clientSocket.close();
sc.close();
}
我看过其他线程,我:尝试使用不同的端口号,关闭了防火墙,并确保在客户端之前运行服务器
当我在同一台计算机上运行两个类,但在2个不同的设备上却给我错误时,它起作用。
跨计算机连接是否可以这样工作?
如果是这样,是否有人知道如何解决此错误。 谢谢
您正在连接到localhost
,根据您的问题应该是另一台计算机的ip ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.